1、在阿里云服务器搭建openv-p-n(有条件的同学再做)

2、通过编译、二进制安装MySQL5.7

编译安装MySQL5.7

安装相关包

yum -y install libaio numactl-libs

创建用户和组

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

准备数据目录

mkdir -p /data/mysql
chown mysql:mysql /data/mysql

准备程序文件

tar xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local
cd /usr/local/
ln -s mysql-5.7.31-linux-glibc2.12-x86_64/ mysql
chown -R root.root /usr/local/mysql/

准备环境变量

echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

准备配置文件

cp /etc/my.cnf{,.bak}
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock

初始化数据库文件并提取root密码

方式1: 生成随机密码
[root@localhost ~]# mysqld --initialize --user=mysql --datadir=/data/mysql
[root@localhost ~]# awk '/temporary password/{print $NF}' /data/mysql/mysql.log
pkYeqDc9t+#/
方式2: 生成 root 空密码
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql

准备服务脚本和启动

方式一:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start 方式二:
使用systemd管理mysql
vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000 方式三:
不借助工具启动
[root@localhost ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

修改口令

#修改前面生成的随机密码为指定密码
mysqladmin -uroot -p'pkYeqDc9t+#/' password P@ssw0rd
#修改前面生成的空密码为指定密码
mysqladmin -uroot password P@ssw0rd

测试登录

[root@localhost ~]# mysql -uroot -p'P@ssw0rd'

配置MySQL中免去密码校验进入数据库

vim /etc/my.cnf
[mysqld]
skip-grant-tables 重启mysql服务 免密登录MySQL
然后再次进入到终端当中,敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中 修改默认的密码
mysql> alter user root@'localhost' identified by 'P@ssw0rd';
Query OK, 0 rows affected (0.00 sec)

set password for 'username'@'host' = password('newpassword') 若出现以下错误:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 则执行 flush privileges mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。­

源码编译安装

安装相关依赖包

[root@localhost ~]# yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel perl-Data-Dumper

准备用户和数据目录

useradd -r -s /sbin/nologin -d /data/mysql mysql

准备数据库目录

mkdir /data/mysql -p
chown mysql.mysql /data/mysql

下载并解压缩源码包

tar xvf mysql-5.6.51.tar.gz -C /usr/local/src

源码编译安装MySQL

cd mysql-5.6.51/
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \ ##mysql程序安装目录
-DMYSQL_DATADIR=/data/mysql/ \ ##数据库数据存放目录
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci make -j 8 && make install 开启多CPU核数编译(sockets)

准备环境变量

echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

生成数据库文件 * 重点

cd /apps/mysql/
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql

准备配置文件

cp -b /apps/mysql/support-files/my-default.cnf /etc/my.cnf  #先备份再替换

准备启动脚本,并启动服务

cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start

3、二进制安装mariadb10.2

mariadb历史版本下载地址

https://mariadb.org/mariadb/all-releases/

创建用户

[root@localhost ~]# useradd -r -d /data/mysqldb -s /sbin/nologin mysql
[root@localhost ~]# getent passwd mysql
mysql:x:997:995::/data/mysqldb:/sbin/nologin
[root@localhost ~]# id mysql
uid=997(mysql) gid=995(mysql) groups=995(mysql)

准备安装包

[root@localhost ~]# tar xvf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -s mariadb-10.2.15-linux-x86_64/ mysql
[root@localhost local]# chown -R root:root mysql/

配置环境变量

[root@localhost ~]# echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh
[root@localhost ~]# . /etc/profile.d/mysql.sh
[root@localhost ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

配置mariadb数据目录

[root@localhost ~]# mkdir /data/mysqldb -p
[root@localhost ~]# chown mysql.mysql /data/mysqldb
[root@localhost ~]# ll -d /data/mysqldb/
drwxr-xr-x 2 mysql mysql 6 Jan 27 02:38 /data/mysqldb/
[root@localhost ~]# chmod 770 /data/mysqldb
[root@localhost ~]# ll -d /data/mysqldb
drwxrwx--- 2 mysql mysql 6 Jan 27 02:38 /data/mysqldb

初始化mariadb脚本

[root@localhost mysql]# pwd
/usr/local/mysql
[root@localhost mysql]# scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql
Installing MariaDB/MySQL system tables in '/data/mysqldb' ...
OK To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands: './bin/mysqladmin' -u root password 'new-password'
'./bin/mysqladmin' -u root -h localhost.localdomain password 'new-password' Alternatively you can run:
'./bin/mysql_secure_installation' which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers. See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions. You can start the MariaDB daemon with:
cd '.' ; ./bin/mysqld_safe --datadir='/data/mysqldb' You can test the MariaDB daemon with mysql-test-run.pl
cd './mysql-test' ; perl mysql-test-run.pl Please report any problems at http://mariadb.org/jira The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

配置配置文件

[root@localhost mysql]# cp /etc/my.cnf{,.bak}
[root@localhost mysql]# cp support-files/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
[root@localhost mysql]# vim /etc/my.cnf

注:修改sock文件路径后,应该修改文件权限,使mysql用户具有写的权限
建议不要进行修改,保持默认
[root@localhost ~]# setfacl -R -m u:mysql:rwx /usr/local/mysql/

配置启动脚本

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# service mysqld start
Starting mysqld (via systemctl): [ OK ]

验证mariadb

注:默认为空密码

mariadb安全配置

[root@localhost ~]# mysql_secure_installation

修改sock文件为初始目录

vim /etc/my.cnf

程序编译时初始配置

[root@localhost ~]# /usr/local/mysql/bin/mysqld --print-defaults
/usr/local/mysql/bin/mysqld would have been started with the following arguments:
--port=3306 --datadir=/data/mysqldb --socket=/tmp/mysql.sock --skip-external-locking --key_buffer_size=384M --max_allowed_packet=1M --table_open_cache=512 --sort_buffer_size=2M --read_buffer_size=2M --read_rnd_buffer_size=8M --myisam_sort_buffer_size=64M --thread_cache_size=8 --query_cache_size=32M --thread_concurrency=8 --log-bin=mysql-bin --server-id=1

重启服务

[root@localhost ~]# service mysqld restart
Restarting mysqld (via systemctl): [ OK ]

运行脚本

[root@localhost ~]# mysql_secure_installation

验证:

linux作业--第十周的更多相关文章

  1. linux作业--第十二周

    1.主从复制及主主复制的实现 2.xtrabackup实现全量+增量+binlog恢复库 3.MyCAT实现MySQL读写分离 4.ansible常用模块介绍

  2. linux作业--第八周

    1.创建私有CA并进行证书申请. 配置文件存放路径 /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # Where everythi ...

  3. linux作业--第五周

    1.简述osi七层模型和TCP/IP五层模型 一.OSI参考模型 (1) OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO ...

  4. linux作业--第三周

    1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@localhost ~]# cat /etc/passwd | grep ...

  5. linux作业--第十一周

    1. 导入hellodb.sql生成数据库 (1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄 (2) 以ClassID为分组依据,显示每组的平均年龄 (3) 显示第2题中 ...

  6. linux作业--第七周

    1.解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔5分钟.防火墙命令为:iptables - ...

  7. linux作业--第六周

    1.编写脚本实现登陆远程主机.(使用expect和shell脚本两种形式). #expect方式 yum -y install expect vim remote_ssh.sh #!/usr/bin/ ...

  8. 2017-2018-1 20179205《Linux内核原理与设计》第十周作业

    <Linux内核原理与设计>第十周作业 教材17.19.20章学习及收获 1.在Linux以及所有unix系统中,设备被分为以下三种:块设备(blkdev)以块为单位寻址,通过块设备节点来 ...

  9. 20155326 第十周课下作业-IPC

    20155326 第十周课下作业-IPC 学习题目: 研究Linux下IPC机制:原理,优缺点,每种机制至少给一个示例,提交研究博客的链接 共享内存 管道 FIFO 信号 消息队列 学习过程 -IPC ...

随机推荐

  1. APC 篇——总结与提升

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  2. react之每日一更(实现canvas拖拽,增、删、改拖拽模块大小功能)

    效果图: import React, { Component } from 'react'; import scaleImage from './images/scale.png'; import c ...

  3. CF954H Path Counting

    一开始的想法是枚举路径的 \(\rm LCA\) 然后再枚举两边的深度,但是这样无论如何我都只能做到 \(O(n ^ 3)\) 的复杂度. 只能考虑换一种方式计数,注意到点分治可以解决树上一类路径问题 ...

  4. bom案例4-模拟滚动条

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. 【转载】Locust实现集合点

    直接编写接口事务脚本对后台接口进行测试:有时测试需要让所有并发用户完成初始化后再进行压力测试,这就需要类似于LoadRunner中的集合点的概念,由于框架本身没有直接封装,有如下办法实现: from ...

  6. java file已存在,新建流写入此文件是否会覆盖原本file信息

    java中建立文件输出流,当文件不存在时会新建一个文件:如果有同名文件,自动覆盖.不存在时自动建立.FileOutputStream的默认构造方法是直接覆盖掉原来的文件,而FileOutputStre ...

  7. array_intersect_key 取得需要字段 用法

    $need_key = [ 'hash' => 0 ];        $parma = array_intersect_key( $parmas, $need_key );

  8. 【BZOJ2337】XOR和路径(高斯消元)

    题目链接 大意 给出\(N\)个点,\(M\)条边的一张图,其中每条边都有一个非负整数边权. 一个人从1号点出发,在与该点相连的边中等概率的选择一条游走,直到走到\(N\)号点. 问:将这条路径上的边 ...

  9. Java中md5摘要算法的几种方法

    public class MD5_Test { public static String md5_1(String oldStr) { char hexDigits[] = { '0', '1', ' ...

  10. 经纬坐标(BLH)数据创建.kml文件小工具设计 Java版

    技术背景 KML,是标记语言(Keyhole Markup Language)的缩写,最初由Keyhole公司开发,是一种基于XML 语法与格式的.用于描述和保存地理信息(如点.线.图像.多边形和模型 ...