=Start=
缘由:
要做一个集合多种功能的网站,不同的功能对应着不同的MySQL数据库,且分散在多台服务器上。考虑到直接在原始数据库上进行操作会影响性能和可用性,所以决定创建MySQL主从,将所有的从库放在一台服务器上,好处是集中存放易于管理,且不会对原始数据库造成较大影响。这么做需要开启多个MySQL实例,一个实例对应一个特定的从库。下面是在CentOS 6.x环境下创建多个MySQL实例的步骤,在此记录总结一下,方便以后参考。
参考解答:
1. 创建一个新的MySQL数据目录 /opt/mysql_3307
(要记得将目录的用户和组改成mysql)
# mkdir -p /opt/mysql_3307 # chown mysql.mysql /opt/mysql_3307/
2. 利用已有的MySQL配置文件(/etc/my.cnf)创建一个新的名为 my.cnf.3307 的配置文件,并更新其中的 datadir/port 配置:
# cp /etc/my.cnf /etc/my.cnf.3307 # vi /etc/my.cnf.3307 datadir=/opt/mysql_3307 port=3307
3. 利用已有的MySQL启动脚本(/etc/init.d/mysql)创建一个新的名为 mysql3307 的启动脚本用于 启动/停止/重载 新的MySQL实例:
# cp /etc/init.d/mysql /etc/init.d/mysql3307
4. 对刚才新建的名为 mysql3307 的启动脚本做一些修改(至少需要4处修改):
# vi /etc/init.d/mysql3307 修改1: 将下面一行的内容添加到 第138行(即 --pid-file= 所在行) 之后用来处理端口选项 --port=*) port=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; 修改2: 修改 第215行(即 conf=/etc/my.cnf 所在行) 更新配置文件的路径: conf=/etc/my.cnf.3307 修改3: 修改 第257行(即 parse_server_arguments `$print_defaults 所在行) 添加「-c」选项,使其在解析参数时会去读取刚才新建的配置文件: parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server -c/etc/my.cnf.3307` 修改4: 修改 第284行(即 「wait_for_pid created」 上一行) 添加「--defaults-file=/etc/my.cnf.3307 --port="$port"」选项,设置默认的配置文件和端口: $bindir/mysqld_safe --defaults-file=/etc/my.cnf.3307 --port="$port" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" --socket="$datadir"/mysql3307.sock $other_args >/dev/null 2>&1 &
5. 为新的MySQL实例安装默认的表:
# mysql_install_db --datadir=/opt/mysql_3307 --defaults-file=/etc/my.cnf.3307 --user=mysql
6. 启动新的MySQL实例:
# /etc/init.d/mysql3307 start
7. 为该MySQL实例设置密码,并连接到该实例:
# /usr/bin/mysqladmin -u root -h127.0.0.1 -P3307 password 'new_password' # mysql -uroot -h127.0.0.1 -P3307 -p
8. 将该服务添加到启动列表中[可选]
# chkconfig --add mysql3307 # chkconfig mysql3307 --level 2345 on
如果你想部署更多的MySQL实例,照着上面的方法一步一步来即可(注意进行一些修改),不过要确保有足够的内存和CPU资源。
参考链接:
https://opensourcedbms.com/dbms/running-multiple-mysql-5-6-instances-on-one-server-in-centos-6rhel-6fedora/
- http://sharadchhetri.com/2013/12/02/create-multiple-mysql-instance-centos-6-4-red-hat-6-4/
- https://www.percona.com/blog/2014/08/26/mysqld_multi-how-to-run-multiple-instances-of-mysql/ #通过mysqld_multi搭建多个实例
=END=
《 “MySQL多实例环境的创建(CentOS)” 》 有 3 条评论
MySQL慢日志简介及Anemometer工具介绍
http://www.fordba.com/box-anemometer-visual-mysql-slow.html
https://github.com/box/Anemometer
Anemometer 慢查询日志监控平台
https://www.linuxidc.com/Linux/2017-01/139145.htm
使用Anemometer基于pt-query-digest将MySQL慢查询可视化
https://www.cnblogs.com/xuanzhi201111/p/4128894.html
安装MySQL慢查询日志工具Anemometer
http://ourmysql.com/archives/1359
【MySQL】MySQL慢日志分析WEB页面Box Anemometer+pt-query-digest
https://www.cnblogs.com/jiangxu67/p/4309478.html
MySQL使用SSL连接
https://hhyo.github.io/2018/11/22/mysql-ssl/
MySQL复制参数slave_exec_mode=IDEMPOTENT测试
https://hhyo.github.io/2018/11/22/slave-exec-mode/