一.Mysql的二进制安装
1.卸载系统内mariadb程序
|
2.下载相应的Mysql安装包
|
3.将下载好的Mysql安装包上传至服务器的/data/soft目录下,如果没有此目录,可以自行创建
#mkdir -p /data/soft #创建软件安装包存放目录
#cd /data/soft #进入软件存放目录
#tar xf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz -C /usr/local #解压软件程序到/usr/local下面
#cd /usr/local
#ln -s mysql-5.7.43-linux-glibc2.12-x86_64 mysql #给文件夹创建软链接,方便后面进行软件的升级
#vim /etc/profile #编辑系统配置环境配置文件
export
PATH=
"/usr/local/mysql/bin:$PATH"
#追加以上内容,增加Mysql的bin目录加入系统环境变量
#source /etc/profile #刷新系统配置文件
#mysql -V #验证环境变量是否添加成功
4.初始化数据库
#mkdir -p /data/mysql/data #创建数据库数据的存放目录
#groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql #新建Mysql用户及用户组
#chown -R mysql:mysql /data/mysql/ #给数据目录文件授权
#mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data #初始化数据库,basedir指的是Mysql程序的存放目录,datadir指的是数据的存放目录,--initialize-insecure代表不安全初始化,不产生密码
#此步骤只要不报错就OK
5.编写Mysql配置文件
#vim /etc/my.cnf
[mysql]
socket=
/tmp/mysql
.sock
[mysqld]
basedir=
/usr/local/mysql
datadir=
/data/mysql/data
pid-
file
=
/data/mysql/data/mysql
.pid
log_error=
/data/mysql/data/mysql
.log
socket=
/tmp/mysql
.sock
wait_timeout=600
max_cnotallow=2000
character-
set
-server=utf8mb4
collation-server=utf8mb4_unicode_ci
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
server-
id
=49
log_bin=master-bin
log-slave-updates=
true
default-time_znotallow=
'+8:00'
sql_mode=
'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
slow_query_log = 1
slow_query_log_file =
/data/mysql/data/slow-query
.log
long_query_time = 2
slave-skip-errors = all
#以上配置文件参数可以根据实际情况进行调整
6.实现数据库启动脚本运行Mysql
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#/etc/init.d/mysqld start #启动数据库
7.使用systemctl管理Mysql服务
#vim /etc/systemd/system/mysqld.service
[Unit]
Descriptinotallow=MySQL Server
Documentatinotallow=
man
:mysqld(8)
Documentatinotallow=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
#/etc/init.d/mysqld stop #在执行启动命令前,需要关闭上个步骤开启的Mysql服务
#ps -ef|grep mysqld #查看Mysql服务是否正常退出
#systemctl daemon-reload #加载systemctl配置文件
#systemctl enable --now mysqld #设置立即启动并开机自启动
#systemctl status mysqld #查看Mysql运行状态
8.设置Mysql密码
#mysql
mysql>alter user root@localhost identified by
'gotion123'
;
mysql>GRANT ALL PRIVILEGES ON *.* TO
'root'
@
'%'
IDENTIFIED BY
'gotion123'
;
#给root用户授权远程访问
mysql>flush privileges;
9.如果有从库,参照以上教程先安装完毕
二.配置Mysql主从复制
1.配置主服务器
#vim /etc/my.cnf #在mysqld配置项下添加三行配置
[mysqld]
server-
id
=11
#此处的id号可以任意设置,但跟从服务器一定要不同
log_bin=master-bin
log-slave-updates=
true
#systemctl restart mysqld #重启Mysql服务
#mysql -uroot -pgotion123 #登录Mysql
mysql>GRANT REPLICATION SLAVE ON *.* TO
'slave'
@
'%'
IDENTIFIED BY
'gotion123!'
;
#设置一个用户进行从库复制的账号
mysql> flush privileges;
mysql> show master status;
#记录下此时的file和position值
#配置root用户授权远程主机可以访问
mysql>GRANT ALL PRIVILEGES ON *.* TO
'root'
@
'%'
IDENTIFIED BY
'gotion123'
;
mysql>flush privileges;
2.配置从服务器
#vim /etc/my.cnf #在mysqld配置项下添加三行配置
[mysqld]
server-
id
=22
#此处的id号可以任意设置,但跟主服务器一定要不同
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
read_notallow=1
relay_log_recovery=1
#systemctl restart mysqld #重启Mysql服务
#mysql -uroot -pgotion123 #登录Mysql
mysql>change master to master_host=
'主节点IP地址'
,master_user=
'slave'
,master_password=
'gotion123!'
,master_log_file=
'master-bin.000002'
,master_log_pos=834;
#这里的最后两个参数是上一个步骤记录下的file跟position值
mysql>start slave;
#启动从库,停止使用stop
mysql>show slave status\G
#查看Slave状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
#以上两个值是yes就表示配置成功
3.验证主从复制
• 在主服务器创建库。
mysql>create database test_db;
• 从服务器查看数据库,显示数据库相同,则主从复制成功。
mysql>show databases;