MySQL 多实例详解
MySQL多實例配置方法
? ? ? 1、單一配置文件
? ? ? 2、多配置文件。
二、實戰步驟:
? ?1、同步時間
? ?2、準備mysql依賴包
? ?3、環境準備
? ? ? ? ? ?3.1添加mysql用戶
? ? ? ? ? ?3.2編譯安裝mysql
? ? ? 4、安裝MySQL多實例
? ?5、準備配置文件
? ?6、啟動MySQL
? ?7、登錄mysql與一些安全措施
? ?8、關閉MySQL
? ?9,、提供簡易管理腳本
? ?10、為mysql的root用戶創建密碼
? ?11、附,多配置文件安裝mysql多實例,這里增加mysql 的3309端口
? ?12、總結
1、同步時間
| yum?install?epel* ntp 202.120.2.101 yum?install?-y ntp ntpdate 202.120.2.101 hwclock -w |
2、準備mysql依賴包
| yum?install?-y autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl* yum?install?cmake -y |
3、環境準備
3.1添加mysql用戶
| groupadd mysql useradd?-g mysql mysql mkdir?-pv?/data/{3306,3307,3308}/data chown?-R mysql.mysql?/data/ cd?/usr/local/src/ |
3.2編譯安裝mysql
| tar?-xf mysql-5.5.45.tar.gz cd?mysql-5.5.45 chown?mysql.mysql -R . cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql?\ -DMYSQL_DATADIR=/data?\ -DSYSCONFDIR=/etc?\ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_LIBWRAP=0 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci gmake make?install |
4、安裝MySQL多實例
| cd?/usr/local/mysql/ scripts/mysql_install_db?--user=mysql --basedir=/usr/local/mysql?--datadir=/data/3306/ scripts/mysql_install_db?--user=mysql --basedir=/usr/local/mysql?--datadir=/data/3307/ scripts/mysql_install_db?--user=mysql --basedir=/usr/local/mysql?--datadir=/data/3308/ |
5、準備配置文件
| mysqld_multi --example >?/data/multi.cnf?#提供多配置文件模板 |
| vim?/data/multi.cnf?#修改模板,這里比較簡易 [mysqld_multi] mysqld =?/usr/local/mysql/bin/mysqld_safe mysqladmin =?/usr/local/mysql/bin/mysqladmin user = root #這個用戶應該有關機權限,然后沒有其他的權限。建議創建一個通用的,multi_admin用戶控制其它的MySQL用戶,這里有個例子 #GRANT SHUTDOWN ON *.* TO multi_admin@localhost IDENTIFIED BY 'password' [mysqld1] socket =?/tmp/mysql.sock1 port = 3306 pid-file?=?/data/3306/mysql.pid datadir =?/data/3306/data [mysqld2] socket =?/tmp/mysql.sock2 port = 3307 pid-file?=?/data/3307/mysql.pid datadir =?/data/3307/data #language = /usr/local/mysql/share/mysql/english #user = unix_user1 [mysqld3] #mysqld = /path/to/mysqld_safe #ledir = /path/to/mysqld-binary/ #mysqladmin = /path/to/mysqladmin socket =?/tmp/mysql.sock3 port = 3308 pid-file?=?/data/3308/mysql.pid datadir =?/data/3308/data #language = /usr/local/mysql/share/mysql/swedish #user = unix_user2 |
以上是簡易的配置文件。這個配置文件只能讓MySQL啟動起來。
6、啟動MySQL
| mysqld_multi --defaults-file=/data/multi.cnf start 1,2,3 ss -tnl?#查看監聽端口 LISTEN 0 50 *:3306 *:* LISTEN 0 50 *:3307 *:* LISTEN 0 50 *:3308 *:* |
7、登錄mysql與一些安全措施
| mysql -S?/tmp/mysql.sock1?#指定socket登錄 |
| mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | |?test?| +--------------------+ 4 rows?in?set?(0.01 sec) mysql> drop database?test; Query OK, 0 rows affected (0.04 sec) mysql>?select?User,Host from mysql.user; +------+-----------+ | User | Host | +------+-----------+ | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | | | node1 | | root | node1 | +------+-----------+ 6 rows?in?set?(0.01 sec) mysql> delete from mysql.user where User=''; Query OK, 2 rows affected (0.00 sec) mysql> delete from mysql.user where Host='::1'; Query OK, 1 row affected (0.00 sec) mysql> delete from mysql.user where Host='node1'; Query OK, 1 row affected (0.00 sec) |
其余的操作類似,就不在演示
8、關閉MySQL
| mysqladmin -S?/tmp/mysql.sock1?shutdown?建議使用 musqld_multi --defaults-file?stop [#,#] killall mysqld 不建議使用 |
9,、提供簡易管理腳本
| #!/bin/bash # basedir=/usr/local/mysql bindir=/usr/local/mysql/bin conf=/data/multi.cnf export?PATH=$bindir:/$PATH if?test?-x $bindir/mysqld_multi then mysqld_multi="$bindir/mysqld_multi"; else echo?"Can't execute $bindir/mysqld_multi from dir $basedir"; exit; fi case?"$1"?in 'start'?) "$mysqld_multi"?--defaults-extra-file=$conf start $2 ;; 'stop'?) "$mysqld_multi"?--defaults-extra-file=$conf stop $2 ;; 'report'?) "$mysqld_multi"?--defaults-extra-file=$conf report $2 ;; 'restart'?) "$mysqld_multi"?--defaults-extra-file=$conf stop $2 "$mysqld_multi"?--defaults-extra-file=$conf start $2 ;; *) echo?"Usage: $0 {start|stop|report|restart}"?>&2 ;; esac |
10、為mysql的root用戶創建密碼
| mysqladmin -uroot -S?/tmp/mysql.sock2 password?"123456"?#指定socket文件位置即可 |
其余的操作一樣
11、附,多配置文件安裝mysql多實例,這里增加mysql 的3309端口
| mkdir?-pv?/data/3309/data chown?mysql.mysql -R 3309/ cd?/usr/local/mysql scripts/mysql_install_db?--datadir=/data/3309/data/?--user=mysql --basedir=/usr/local/mysql/ cp?support-files/my-small.cnf?/data/3309/my.cnf |
| vim?/data/3309/my.cnf [client] port = 3309?#這里也需要注意下吧 socket =?/tmp/mysql.sock4 [mysqld] port = 3309?#注意端口 socket =?/tmp/mysql.sock4?#注意socket skip-external-locking key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 128K datadir=/data/3309/data?#注意datadir server-id?= 1 [mysqldump] quick max_allowed_packet = 16M |
| mysqld_safe --defaults-file=/data/3309/my.cnf 2&1> >?/dev/null?#啟動mysqld |
| ss -tnl |?grep?330?#查看端口 LISTEN 0 50 *:3306 *:* LISTEN 0 50 *:3307 *:* LISTEN 0 50 *:3308 *:* LISTEN 0 50 *:3309 *:* |
本文轉自 chengxuyonghu 51CTO博客,原文鏈接:http://blog.51cto.com/6226001001/1795017,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的MySQL 多实例详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql修改存储过程相关权限问题
- 下一篇: linux cmake编译源码,linu