Mysql工做中無處不在,無數次安裝,優化,一直沒有時間,整理進行歸檔,最近在作mysql的Dass服務,把最近遇到的問題,進行整理,梳理一份操做指南;供你們參考;html
序言mysql
Mysql多實例即一臺服務器上運行多個Mysql服務進程 ,開啓不一樣的服務端口,經過不一樣的socket 監聽不一樣的服務端口來提供各自的服務。linux
Mysql多例的好處:nginx
一、 有效利用服務器資源:經過多實例地配置,能夠將服務器剩餘的資源充分利用起來。
二、 資源互相搶佔問題:資源互相搶佔問題,當某個服務實例服務併發很高時或者開啓慢查詢時,會消耗更多的內存、CPU、磁盤IO資源,致使服務器上的其餘實例提供服務的質量降低。
三、 節約資源。web
部署多實例的兩種方式sql
同一開發環境下安裝兩個數據庫,必須處理如下問題shell
具體詳細參考官網 (https://dev.mysql.com/doc/refman/5.7/en/installing.html)數據庫
centos7 x64 參考地址:https://dev.mysql.com/downloads/mysql/
mysql 5.7.22(壓縮版)vim
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 msyqlcentos
id mysql uid=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=3306 socket=/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_bin binlog-ignore-db = mysql [mysqld3307] mysqld=mysqld mysqladmin=mysqladmin datadir=/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_bin replicate-ignore-db=mysql relay-log = slave-relay-bin relay-log-index = slave-relay-bin.index read_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/wordpress nginx 配置:/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://www.percona.com/downloads/percona-toolkit/LATEST/
https://www.percona.com/doc/percona-xtrabackup/2.1/xtrabackup_bin/incremental_backups.html#