• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

企业级MySQL数据库多实例实战【显哥出品,必为精品】

MySQL lixian 5年前 (2020-06-09) 20728次浏览 1个评论 扫描二维码
文章目录[隐藏]

一、mysql多实例

1.创建多实例目录

  1. [root@db01 ~]# mkdir /data/{3307,3308,3309} -p

2.配置多实例配置文件

  1. [root@db01 ~]# vim /data/3307/my.cnf
  2. [mysqld]
  3. basedir=/usr/local/mysql
  4. datadir=/data/3307/data
  5. socket=/data/3307/mysql.sock
  6. port=3307
  7. log-error=/data/3307/data/mysql.err
  8. log-bin=/data/3307/data/mysql-bin
  9. server_id=7
  10.  
  11. [root@db01 ~]# vim /data/3308/my.cnf
  12. [mysqld]
  13. basedir=/usr/local/mysql
  14. datadir=/data/3308/data
  15. socket=/data/3308/mysql.sock
  16. port=3308
  17. log-error=/data/3308/data/mysql.err
  18. log-bin=/data/3308/data/mysql-bin
  19. server_id=8
  20.  
  21. [root@db01 ~]# vim /data/3309/my.cnf
  22. [mysqld]
  23. basedir=/usr/local/mysql
  24. datadir=/data/3309/data
  25. socket=/data/3309/mysql.sock
  26. port=3309
  27. log-error=/data/3309/data/mysql.err
  28. log-bin=/data/3309/data/mysql-bin
  29. server_id=9

3.初始化多套数据库

  1. [root@db01 ~]# cd /usr/local/mysql/scripts/
  2.  
  3. [root@db01 scripts]# ./mysql_install_db --defaults-file=/data/3307/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
  4.  
  5. [root@db01 scripts]# ./mysql_install_db --defaults-file=/data/3308/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data
  6.  
  7. [root@db01 scripts]# ./mysql_install_db --defaults-file=/data/3309/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3309/data
  8.  
  9. #查看初始化后目录结构
  10. [root@db01 data]# tree -L 3 /data/

4.授权目录

  1. [root@db01 data]# chown -R mysql.mysql /data/

5.启动数据库

  1. [root@db01 data]# mysqld_safe --defaults-file=/data/3307/my.cnf &
  2. [root@db01 data]# mysqld_safe --defaults-file=/data/3308/my.cnf &
  3. [root@db01 data]# mysqld_safe --defaults-file=/data/3309/my.cnf &
  4.  
  5. #如果启动不起来,停掉3306数据库,再尝试启动

6.验证启动

  1. [root@db01 data]# netstat -lntp
  2. tcp6 0 0 :::3307 :::* LISTEN 31358/mysqld
  3. tcp6 0 0 :::3308 :::* LISTEN 31531/mysqld
  4. tcp6 0 0 :::3309 :::* LISTEN 32042/mysqld

7.连接多实例

  1. [root@db01 data]# mysql -S /data/3307/mysql.sock
  2. [root@db01 data]# mysql -S /data/3308/mysql.sock
  3. [root@db01 data]# mysql -S /data/3309/mysql.sock

8.确认多实例

  1. [root@db01 data]# mysql -S /data/3309/mysql.sock -e 'show variables like "server_id";'
  2. +---------------+-------+
  3. | Variable_name | Value |
  4. +---------------+-------+
  5. | server_id | 9 |
  6. +---------------+-------+
  7.  
  8. [root@db01 data]# mysql -S /data/3308/mysql.sock -e 'show variables like "server_id";'
  9. +---------------+-------+
  10. | Variable_name | Value |
  11. +---------------+-------+
  12. | server_id | 8 |
  13. +---------------+-------+
  14.  
  15. [root@db01 data]# mysql -S /data/3307/mysql.sock -e 'show variables like "server_id";'
  16. +---------------+-------+
  17. | Variable_name | Value |
  18. +---------------+-------+
  19. | server_id | 7 |
  20. +---------------+-------+

9.多实例配置密码

  1. [root@db01 data]# mysqladmin -uroot -S /data/3307/mysql.sock password '3307'
  2.  
  3. [root@db01 data]# mysqladmin -uroot -S /data/3308/mysql.sock password '3308'
  4.  
  5. [root@db01 data]# mysqladmin -uroot -S /data/3309/mysql.sock password '3309'

10.学习阶段连接数据库

  1. [root@db01 data]# vim /usr/bin/mysql3307
  2. mysql -uroot -S /data/3307/mysql.sock -p3307
  3. [root@db01 data]# vim /usr/bin/mysql3308
  4. mysql -uroot -S /data/3308/mysql.sock -p3308
  5. [root@db01 data]# vim /usr/bin/mysql3309
  6. mysql -uroot -S /data/3309/mysql.sock -p3309
  7.  
  8. [root@db01 data]# chmod +x /usr/bin/mysql*

二、mysql多实例主从

1.主库创建主从同步的用户

  1. mysql> grant replication slave on *.* to rep@'127.0.0.1' identified by '123';
  2. Query OK, 0 rows affected (0.01 sec)

2.主库查看binlog和位置点

  1. mysql> show master status;
  2. +------------------+----------+--------------+------------------+-------------------+
  3. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
  4. +------------------+----------+--------------+------------------+-------------------+
  5. | mysql-bin.000004 | 467 | | | |
  6. +------------------+----------+--------------+------------------+-------------------+
  7. 1 row in set (0.01 sec)

3.从库配置同步的主库信息

  1. #从库需要知道:
  2. 1.主库是谁 127.0.0.1
  3. 2.通过什么用户去同步主库 rep
  4. 3.主从的用户的密码 123
  5. 4.binlog名字是什么 mysql-bin.000004
  6. 5.binlog位置点 467
  7. mysql> change master to
  8. -> master_host='127.0.0.1',
  9. -> master_user='rep',
  10. -> master_password='123',
  11. -> master_log_file='mysql-bin.000004',
  12. -> master_log_pos=467,
  13. -> master_port=3307;
  14. Query OK, 0 rows affected, 2 warnings (0.01 sec)
  15.  
  16. change master to
  17. master_host='127.0.0.1',
  18. master_user='rep',
  19. master_password='123',
  20. master_log_file='mysql-bin.000004',
  21. master_log_pos=467,
  22. master_port=3307;

4.开启从库

  1. mysql> start slave;
  2. Query OK, 0 rows affected (0.00 sec)

5.查看主从状态

  1. mysql> show slave status\G
  2. *************************** 1. row ***************************
  3. Slave_IO_State: Waiting for master to send event
  4. Master_Host: 127.0.0.1
  5. Master_User: rep
  6. Master_Port: 3307
  7. Connect_Retry: 60
  8. Master_Log_File: mysql-bin.000004
  9. Read_Master_Log_Pos: 467
  10. Relay_Log_File: db01-relay-bin.000002
  11. Relay_Log_Pos: 283
  12. Relay_Master_Log_File: mysql-bin.000004
  13. Slave_IO_Running: Yes
  14. Slave_SQL_Running: Yes

本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:企业级MySQL数据库多实例实战【显哥出品,必为精品】
喜欢 (0)

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽
  1. After reading your article, I have some doubts about gate.io. I don't know if you're free? I would like to consult with you. thank you.