一.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;










