MySQL多实例安装配置方案

MySQL多实例就是,在一台机器上开启多个不同的服务端口(如:3306,3307,3308...),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的端口提供服务。 2017-05-19 09:03:17 MySQL安装方案 NoSQL来势汹汹,为何MySQL地位仍不动摇? 在NoSQL的关系型数据库死亡名单上,MySQL早应该优雅的退出来,或者是像IBM DB2狼狈退出。而现在,MySQL混得风生水起,尽管比Oracle的时间少了近二十年,但是其在市场上的受欢迎程度与Oracle旗鼓相当,且Oracle的欢迎度一直在走下坡路,而MySQL则相对稳定。

MySQL多实例就是,在一台机器上开启多个不同的服务端口(如:3306,3307,3308...),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的端口提供服务。

[[191676]]

一.基本概念

MySQL多实例就是,在一台机器上开启多个不同的服务端口(如:3306,3307,3308...),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的端口提供服务。

MySQL可以共用一套安全程序,使用不同的my.cnf配置文件,启动程序,数据文件。

逻辑上是独立的,但是一个实例过载过高的时候会对其他造成影响。

MySQL多实例的作用与问题:

1.有效利用服务器资源

2.节约服务器资源

3.资源互相抢占问题

当某个服务实现并发生很高的或者有慢查询的时候,这个实例会消耗很多的内存。

二.MySQL常见的配置方案

1.多个配置文件,多个启动程序

2.单一配置文件部署方案

三.开始安装

1.安装依赖包

yum -y install ncurses-devel libaio-devel

2.杀掉之前的MySQL进程

  1. pkillmysqld
  2. netstat-ntlp
  3. ps-ef|grepmysql
  4. rm-f/etc/init.d/mysqld

3.创建多实例的目录结构

  1. mkdir-p/data/{3306,3307}/data
  2. tree/data

4.创建多实例的配置文件

多实例启动文件的启动MySQL服务实质:

  1. mysql_safe--defaults-file=/data/3306/my.cnf2>&1>/dev/null&

多实例启动文件的关闭MySQL服务实质

  1. mysqladmin-uroot-p***-S/data/3306/mysql.sockshutdown
  2. my.cnf
  3. [client]
  4. port=3306
  5. socket=/data/3306/mysql.sock
  6. [mysql]
  7. no-auto-rehash
  8. [mysqld]
  9. user=mysql
  10. port=3306
  11. socket=/data/3306/mysql.sock
  12. basedir=/application/mysql
  13. datadir=/data/3306/data
  14. open_files_limit=1024
  15. back_log=600
  16. max_connections=800
  17. max_connect_errors=3000
  18. table_cache=614
  19. external-locking=FALSE
  20. max_allowed_packet=8M
  21. sort_buffer_size=1M
  22. join_buffer_size=1M
  23. thread_cache_size=100
  24. thread_concurrency=2
  25. query_cache_size=2M
  26. query_cache_limit=1M
  27. query_cache_min_res_unit=2k
  28. #default_table_type=InnoDB
  29. thread_stack=192K
  30. #transaction_isolation=READ-COMMITTED
  31. tmp_table_size=2M
  32. max_heap_table_size=2M
  33. long_query_time=1
  34. #log_long_format
  35. #log-error=/data/3306/error.log
  36. #log-slow-queries=/data/3306/slow.log
  37. pid-file=/data/3306/mysql.pid
  38. log-bin=/data/3306/mysql-bin
  39. relay-log=/data/3306/relay-bin
  40. relay-log-info-file=/data/3306/relay-log.info
  41. binlog_cache_size=1M
  42. max_binlog_cache_size=1M
  43. max_binlog_size=2M
  44. expire_logs_days=7
  45. key_buffer_size=16M
  46. read_buffer_size=1M
  47. read_rnd_buffer_size=1M
  48. bulk_insert_buffer_size=1M
  49. #myisam_sort_buffer_size=1M
  50. #myisam_max_sort_file_size=10G
  51. #myisam_max_extra_sort_file_size=10G
  52. #myisam_repair_threads=1
  53. #myisam_recover
  54. lower_case_table_names=1
  55. skip-name-resolve
  56. slave-skip-errors=1032,1062
  57. replicate-ignore-db=mysql
  58. server-id=1
  59. innodb_additional_mem_pool_size=4M
  60. innodb_buffer_pool_size=32M
  61. innodb_data_file_path=ibdata1:128M:autoextend
  62. innodb_file_io_threads=4
  63. innodb_thread_concurrency=8
  64. innodb_flush_log_at_trx_commit=2
  65. innodb_log_buffer_size=2M
  66. innodb_log_file_size=4M
  67. innodb_log_files_in_group=3
  68. innodb_max_dirty_pages_pct=90
  69. innodb_lock_wait_timeout=120
  70. innodb_file_per_table=0
  71. [mysqldump]
  72. quick
  73. max_allowed_packet=2M
  74. [mysqld_safe]
  75. log-error=/data/3306/mysql_qb3306.err
  76. pid-file=/data/3306/mysqld.pid

配置的时候需要注意端口,还有***的日志需要自己知道在哪,方便排错;再有就是有一个"server-id = 1"***每个实例的id不要一样。

mysql(启动关闭服务的脚本)

  1. #!/bin/sh
  2. #init
  3. port=3306
  4. mysql_user="root"
  5. mysql_pwd="qb123"
  6. CmdPath="/application/mysql/bin"
  7. mysql_sock="/data/${port}/mysql.sock"
  8. #startupfunction
  9. function_start_mysql()
  10. {
  11. if[!-e"$mysql_sock"];then
  12. printf"StartingMySQL...\n"
  13. /bin/sh${CmdPath}/mysqld_safe--defaults-file=/data/${port}/my.cnf2>&1>/dev/null&
  14. else
  15. printf"MySQLisrunning...\n"
  16. exit
  17. fi
  18. }
  19. #stopfunction
  20. function_stop_mysql()
  21. {
  22. if[!-e"$mysql_sock"];then
  23. printf"MySQLisstopped...\n"
  24. exit
  25. else
  26. printf"StopingMySQL...\n"
  27. ${CmdPath}/mysqladmin-u${mysql_user}-p${mysql_pwd}-S/data/${port}/mysql.sockshutdown
  28. fi
  29. }
  30. #restartfunction
  31. function_restart_mysql()
  32. {
  33. printf"RestartingMySQL...\n"
  34. function_stop_mysql
  35. sleep2
  36. function_start_mysql
  37. }
  38. case$1in
  39. start)
  40. function_start_mysql
  41. ;;
  42. stop)
  43. function_stop_mysql
  44. ;;
  45. restart)
  46. function_restart_mysql
  47. ;;
  48. *)
  49. printf"Usage:/data/${port}/mysql{start|stop|restart}\n"
  50. esac

5.授权

  1. chown-Rmysql.mysql/data/
  2. find/data/-typef-name"mysql"|xargsls-l
  3. find/data/-typef-name"mysql"|xargschmod+x

如果没做会出现文件找不见问题,希望遇到想到这里。

6.配置mysql命令的全局使用路径

(PATH)

7.初始化(每个端口都做,这里做3306)

  1. cdmysql/scripts/
  2. ./mysql_install_db--basedir=/application/mysql--datadir=/data/3306/data/--user=mysql

(看见两个OK即为初始化成功)

(这样做是为了创建基本的数据文件)

8.启动服务

  1. /data/3306/mysqlstart
  2. /data/3307/mysqlstart
  3. netstat-ntlup|grep330

如果端口没有起来,排查办法如下:

等几十秒,可能起来比较慢

看日志,tail /data/3306/mysql_qb3306.err

细看执行命令的屏幕返回输出

查看系统日志,/var/log/messages

注:由于脚本不是很完善,重启命令***是

  1. /data/3306/mysqlstop
  2. /data/3306/mysqlstart

9.多实例登录

  1. mysql-S/data/3306/mysql.sock
  2. mysql-S/data/3307/mysql.sock

四.MySQL安全配置

1.为root添加密码

  1. mysqladmin-uroot-S/data/3306/mysql.sockpassword'***'

注:在/data/3306/下的mysql里面也需要改成这个密码,

是mysqladmin不是mysql,,需要mysql服务起来要不然没有mysql.sock文件

正因为上面的原因,由于密码是在一个文件里面,需要设置授权,设置只能root用户操作;

  1. find/data/-typef-name"mysql"-execchmod700{}\;
  2. find/data/-typef-name"mysql"-execchownroot.root{}\;
  3. find/data/-typef-name"mysql"-execls-l{}\;

然后

  1. pkillmysqld
  2. /data/3306/mysqlstop
  3. /data/3307/mysqlstop
  4. /data/3307/mysqlstart
  5. /data/3306/mysqlstart
  6. netstat-ntlup|grep330

2.查询并清理多余用户

(安装MySQL的时候已经操作多)

3.登录

  1. mysql-uroot-p***-S/data/3306/mysql.sock

4.修改密码:

先登录

  1. mysql>alteruser'root'@'localhost'identifiedby'newpassword';

五.增加一个MySQL实例

  1. mkdir-p/data/3308/data
  2. cp/data/3306/my.cnf/data/3308/
  3. cp/data/3306/mysql/data/3308/
  4. cd/data/3308
  5. ls
  6. chown-Rmysql.mysql/data/3308
  7. vimmy.cnf
  8. :g/3306/s//3308/g-----改端口
  9. 再改了server_id
  10. vimmysql
  11. 改端口
  12. cd/application/mysql/scripts/
  13. ./mysql_install_db--user=mysql--basedir=/application/mysql--datadir=/data/3308/data/
  14. /data/3308/mysqlstart
  15. mysqladmin-uroot-S/data/3308/mysql.sockpassword'***'
  16. mysql-uroot-p***-S/data/3308/mysql.sock
  17. (将/data/3308/mysql文件里面的密码也改成一样的)
  18. find/data/-typef-name"mysql"-execchmod700{}\;
  19. find/data/-typef-name"mysql"-execchownroot.root{}\;
  20. find/data/-typef-name"mysql"-execls-l{}\;

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月6日 09:31
下一篇 2023年5月6日 09:31

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信