Linux下安装mysql,主从复制,读写分离数据库:详细教程.

1、查看mysql的安装情况 rpm -qa | grep -i mysql

2.删除上命令中安装的软件 rpm -ev mysql-community-libs-5.7.27-1.el6.x86_64 --nodeps

3、都删除成功之后,查找相关的mysql的文件

find / -name mysql

4、删除全部文件

rm -rf /var/lib/mysql rm -rf /var/lib/mysql/mysql rm -rf /etc/logrotate.d/mysql rm -rf /usr/share/mysql rm -rf /usr/bin/mysql rm -rf /usr/lib64/mysql

5再次执行命令

rpm -qa | grep -i mysql #如果没有显式则表示卸载完成

 # 切换用户
 su mysql
# 下载Mysql的tar包
 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-el7-x86_64.tar.gz

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第1张图片

设置用户组:用户 chown -R mysql : mysql mysql-8.0.20-e17-x86_64.tar.gz #此步骤不要,跟下步骤走

切到组: su mysql

如果su mysql密码错误:执行

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第2张图片

切换用户:su mysql

输入新密码: su mysql

之后在opt下解压mysql8

解压失败的图片:

执行: rm -rf mysql-8.0.20-el7-x86_64.tar.gz

解压失败重新下载mysql8: wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-el7-x86_64.tar.gz

再次减压:tar -zxvf mysql-8.0.20-el7-x86_64.tar.gz

将mysql8解压包重命名:mv mysql-8.0.20-el7-x86_64 mysql_01

再次解压: tar -zxvf mysql-8.0.20-el7-x86_64.tar.gz

将mysql8解压包重命名:mv mysql-8.0.20-el7-x86_64 mysql_02

将mysql_01和mysql_02改到mysql目录下:

chown -R mysql : mysql mysql_01/ mysql_02/

# 切换到mysql_01路径下
 cd ./mysql_01
 
 # 创建配置文件my.cnf,直接使用vim编辑,保存后即可。其中###表示为必须项,#表示为可选项
 vim my.cnf

[mysqld]

port=10085 #端口号(主服务器端口) basedir=/opt/mysql_01/#存放路径

datadir=/opt/mysql_01/data/

socket=/opt/mysql_01/mysql.sock

max_connect_errors=10

character-set-server=utf8

default-storage-engine=INNODB

user=mysql

log-bin = mysql-bin

binlog-do-db = panjin_jiudian #数据库表 binlog-ignore-db = mysql server-id = 1

[client] port=10085 #端口号

保存并退出: Esc下:wq

创建data: mkdir data

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第3张图片

保持my.cnf统一:

接下来就需要修改mysql的默认配置信息

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第4张图片

修改mysql.server默认配置:

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第5张图片

以及修改该文件中加载的MySQL配置文件路径,修改为刚才创建的my.cnf文件,如下图,修改完成后,保存退出。

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第6张图片

同样也需要修改support-files下的另一个文件

# 修改support-files文件夹下的mysqld_multi.server文件
 vim ./support-files/mysqld_multi.server
 
 #还是修改basedir和datadir两项属性,如下图所示

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第7张图片

# 切换到mysql_01的根目录
 cd /opt/mysql_01/
 
 # 初始化安装   --defaults-file表示指定初始化的配置文件    --console表示将初始化信息打印在控制台
 ./bin/mysqld --defaults-file=/opt/mysql_01/my.cnf --initialize --console --user=mysql
 
 # 初始化成功后,会在控制台中打印出初始化密码,大致格式如下初始密码要记住,后面需要用到,很重要
 root@localhost: fa356fgss,

启动服务

# 后台启动当前mysql_01的mysql服务,还是需要去指定配置文件,因为在配置文件中我们设置了一个socket参数,只有按照这个配置文件去启动,才会按照socket配置的路径去生成,否则会自动生成在/tmp/mysql.sock,如果mysql_02也是这么生成,则会形成覆盖,在连接时造成只能连接一个服务,甚至报错。
 ./bin/mysqld_safe --defaults-file=./my.cnf &
 
 # 使用命令查看mysql服务是否启动,如下图
 netstat -nultp|grep 10085

img

开防火墙:

firewall-cmd --zone=public --add-port=10085/tcp --permanent #配置防火墙端口

firewall-cmd --reload #启动配置的防火墙

切换到mysql_02路径下

cd ./mysql_02

创建配置文件my.cnf,直接使用vim编辑,保存后即可。其中###表示为必须项,#表示为可选项

vim my.cnf

[mysqld]

port=10086 #端口号(从服务器端口) basedir=/opt/mysql_02/#存放路径

datadir=/opt/mysql_02/data/

socket=/opt/mysql_02/mysql.sock

max_connect_errors=10

character-set-server=utf8

default-storage-engine=INNODB

user=mysql

log-bin = mysql-bin

binlog-do-db = panjin_jiudian #数据库表与主库一至 binlog-ignore-db = mysql server-id = 2

[client] port=10086 #端口号

保存并退出: Esc下:wq

其余同配置mysql_01;

接下来就需要修改mysql_02的默认配置信息 如上

同样配置之后,启动mysql_02,效果如下

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第8张图片

连接数据库与修改密码

mysql-01的连接

 ./bin/mysql --socket=./mysql.sock -uroot -p   # 输入初始密码
# 修改MySQL登录密码,这儿我的修改为 root,注意末尾的结束符分号
 alter user root@localhost identified by "root";
 设置所有ip的用户名为root如下图所示:
 update user set host ='%' where user = 'root';

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第9张图片

修改mysql的加密规则:

刷新:flush privileges;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; #更新一下用户的密码 root用户密码为root

刷新:flush privileges;

刷新:mysql>flush hosts;

mysql_02配置==============同上连接数据库与修改密码

配置主从复制mysql=======================================>

修改mysql_01的my.cnf配置文件

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第10张图片

修改mysql_02的my.cnf配置文件

重启服务:mysql_01/02

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第11张图片

可以把守护进程干掉:kill -TERM 21736

启动服务:

./bin/mysqld_safe --defaults-file=./my.cnf &
​
连接mysql
./bin/mysql --socket=./mysql.sock -uroot -p   #输入自己的密码

use mysql;

mysql> CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; Query OK, 0 rows affected (0.01 sec)

mysql> GRANT REPLICATION SLAVE ON . TO 'repl'@'%'; Query OK, 0 rows affected (0.00 sec)

mysql> show grants for repl; +----------------------------------------------+ | Grants for repl@% | +----------------------------------------------+ | GRANT REPLICATION SLAVE ON . TO repl@% | +----------------------------------------------+ 1 row in set (0.00 sec)

mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) ———————————————

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第12张图片

在配置主从复制前,保证两个数据库(Master和Slave)的数据一致,首先将主数据库(Master)中需要配置主从的数据库数据导出来,使用如下命令,然后导入到从数据库(Slave)中(注意执行这条命令之前不要用use切换到任何数据库下,直接在bin目录下执行就行,不用提前登录): ————————————————

mysql>exit

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第13张图片

kill掉进程:

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第14张图片

kill掉之后再重启mysql_01/02服务.

./bin/mysqld_safe --defaults-file=./my.cnf &
 

cd mysql_01

./bin/mysql --socket=./mysql.sock -uroot -p 

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第15张图片

 Linux下安装mysql,主从复制,读写分离数据库:详细教程._第16张图片

记住图红圈代码:

mysql>exit;

切到从服务器:./bin/mysql --socket=./mysql.sock -uroot -p

执行: change master to master_host = '127.0.0.1' , master_user='repl' , master_password='root' ,master_port=10085, master_log_file = 'mysql-bin.000001' , master_log_pos=156;

开启主从备份: start slave;

查看备份状态: SHOW SLAVE STATUS\G

Linux下安装mysql,主从复制,读写分离数据库:详细教程._第17张图片

完成.

你可能感兴趣的:(mysql主从复制读写分离,mysql,数据库,linux,服务器)