本文共 4554 字,大约阅读时间需要 15 分钟。
Mysql工作中无处不在,无数次安装,优化,一直没有时间,整理进行归档,最近在做mysql的Dass服务,把最近遇到的问题,进行整理,梳理一份操作指南;供大家参考;
序言
Mysql多实例即一台服务器上运行多个Mysql服务进程 ,开启不同的服务端口,通过不同的socket 监听不同的服务端口来提供各自的服务。
Mysql多例的好处:
1、 有效利用服务器资源:通过多实例地配置,可以将服务器剩余的资源充分利用起来。
2、 资源互相抢占问题:资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降。 3、 节约资源。部署多实例的两种方式
同一开发环境下安装两个数据库,必须处理以下问题
具体详细参考官网 ()
centos7 x64 参考地址:
mysql 5.7.22(压缩版)
cd /usr/local wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql
创建一个mysql用户组及用户,且这个用户是不可登录的
创建用户组:groupadd mysql创建不可登录用户:useradd -g mysql -s /sbin/nologin -d /opt/mysql mysql查看下创建后的用户信息:id msyqlid mysqluid=501(mysql) gid=501(mysql) groups=501(mysql)
cd / mkdir /data cd /data mkdir mysql cd mysql mkdir {mysql_3306,mysql_3307} cd /data/mysql/mysql_3306 mkdir {data,log,tmp} cd /data/mysql/mysql_3307 mkdir {data,log,tmp}
chown -R mysql:mysql /data/mysql/ chown -R mysql:mysql /usr/local/mysql/
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile source /etc/profile
cat /etc/profile
复制my.cnf文件到etc目录(mysql 5.722没有my-default.cnf ,需要自动手动创建或者之前的地方进行copy)
vim /etc/my.cnf
将以下内容,全部替换 /etc/my.cnf中的内容(以下配置,已集成mysql主从配置)
[client]port=3306socket=/tmp/mysql.sock[mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin log = /data/mysql/mysqld_multi.log [mysqld] user=mysql basedir = /usr/local/mysql sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld3306] mysqld=mysqld mysqladmin=mysqladmin datadir=/data/mysql/mysql_3306/data port=3306 server_id=3306 socket=/tmp/mysql_3306.sock log-output=file slow_query_log = 1 long_query_time = 1 slow_query_log_file = /data/mysql/mysql_3306/log/slow.log log-error = /data/mysql/mysql_3306/log/error.log log-bin = /data/mysql/mysql_3306/log/mysql3306_binbinlog-ignore-db = mysql [mysqld3307] mysqld=mysqld mysqladmin=mysqladmindatadir=/data/mysql/mysql_3307/data port=3307 server_id=3307 socket=/tmp/mysql_3307.sock log-output=file slow_query_log = 1 long_query_time = 1 slow_query_log_file = /data/mysql/mysql_3307/log/slow.log log-error = /data/mysql/mysql_3307/log/error.log log-bin = /data/mysql/mysql_3307/log/mysql3307_binreplicate-ignore-db=mysqlrelay-log = slave-relay-binrelay-log-index = slave-relay-bin.indexread_only
初始化各个实例:初始化完后会在日志中生成密码,记得保存,初始化密码用到
cd /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3306/data/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3307/data/##开启各实例的SSL连接bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3306/data/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3307/data/
PS:
--basedir:mysql的安装目录--datadir:数据库的数据文件目录cd /data/mysql/mysql_3306/data
cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi
chmod +x /etc/init.d/mysqld_multi
chkconfig --add mysqld_multi
/usr/local/mysql/bin/mysqld_multi start
/usr/local/mysql/bin/mysqld_multi report
/usr/local/mysql/bin/mysqld_multi start 3306
/usr/local/mysql/bin/mysqld_multi stop 3306
mysqld_multi stop 3306 --password=root#or 最好用这个mysqladmin -S /tmp/mysql_3306.sock -uroot -p shutdown
/usr/local/mysql/bin/mysqld_multi report 3306
ss -tulpn|grep mysqld
mysql -S /tmp/mysql_3306.sock -p
set password=password('123456');
flush privileges;
应用路径:/data/web/wordpressnginx 配置:/usr/local/openresty/nginx/conf/site-enable/help.conf
3307的就不写了,你按照以上方法,进行操作;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;FLUSH PRIVILEGES;
其中,root 是用户名,% 表示所有人都可以访问,password是密码,尽量不用使用root,安全很重要
如果你看到当前位置,你已经成功了,致敬在路上学习的小伙伴伴,与你一起知识总结;如果感觉还不错,就分享出去,后续给大家介绍,mysql主从操作构建;#
转载于:https://blog.51cto.com/13799042/2126621