一.Mysql的二进制安装

1.卸载系统内mariadb程序


#yum remove `rpm -qa|grep mariadb`


2.下载相应的Mysql安装包


浏览器访问mysql.com ,以下以5.7.43为例安装

mysql  安装配置及主从复制_mysql

mysql  安装配置及主从复制_sql_02

mysql  安装配置及主从复制_mysql_03

mysql  安装配置及主从复制_服务器_04

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;