[root@localhost ~]# mkdir -p /data/{3306,3307}/data
[root@localhost ~]# tree /data/
/data/ 多实例根目录
|-- 3306 3306实例的目录
| `-- data 3306实例的数据文件目录
`-- 3307 3307 实例的目录
`-- data 3307实例的数据文件目录
4 directories, 0 files
[root@localhost ~]# unzip data.zip
Archive: data.zip
creating: data/
creating: data/3306/
inflating: data/3306/my.cnf
inflating: data/3306/mysql
creating: data/3307/
inflating: data/3307/my.cnf
inflating: data/3307/mysql
[root@localhost ~]# cp data/3306/my.cnf /data/3306/
[root@localhost ~]# cp data/3307/my.cnf /data/3307/
[root@localhost ~]# cp data/3306/mysql /data/3306/
[root@localhost ~]# cp data/3307/mysql /data/3307/
[root@localhost ~]# tree /data
/data
|-- 3306
| |-- data
| |-- my.cnf
| `-- mysql
`-- 3307
|-- data
|-- my.cnf
`-- mysql
4 directories, 4 files
多实例启动文件的mysql服务实质
mysqld_safe --defaults-file=/data/3306/my.cnf 2&1 > /dev/null &
mysqld_safe --defaults-file=/data/3307/my.cnf 2&1 > /dev/null &
多实例启动文件的停止服务实质
mysqladmin -uroot -p1 -S /data/3306/mysql.sock shutdown
mysqladmin -uroot -p1 -S /data/3307/mysql.sock shutdown
授权相关文件
[root@localhost ~]# chown -R mysql.mysql /data
[root@localhost ~]# find /data/ -type f -name "mysql" | xargs chmod 750
[root@localhost ~]# find /data/ -type f -name "mysql" | xargs ls -l
-rwxr-x--- 1 mysql mysql 1301 Jul 31 22:54 /data/3306/mysql
-rwxr-x--- 1 mysql mysql 1300 Jul 31 22:54 /data/3307/mysql
初始化数据库
[root@localhost ~]# cd /usr/local/mysql/scripts/
[root@localhost scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK
[root@localhost scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3307/data --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK
启动服务
[root@localhost ~]# /data/3306/mysql start
Starting MySQL...
[root@localhost ~]# /data/3307/mysql start
Starting MySQL...
[root@localhost ~]# netstat -anutp | grep 330
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 37099/mysqld
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 37818/mysqld
测试登录
[root@localhost ~]# mysql -S /data/3306/mysql.sock
mysql>
[root@localhost ~]# mysql -S /data/3307/mysql.sock
mysql>
设定密码
[root@localhost ~]# mysqladmin -uroot -S /data/3306/mysql.sock password '1'
[root@localhost ~]# mysqladmin -uroot -S /data/3307/mysql.sock password '1'
测试停止服务
[root@localhost ~]# /data/3306/mysql stop
Stoping MySQL...
[root@localhost ~]# /data/3307/mysql stop
Stoping MySQL...
实战增加第三个实例
[root@localhost ~]# mkdir /data/3308/data -p
[root@localhost ~]# cp /data/3306/my.cnf /data/3308/
[root@localhost ~]# cp /data/3306/mysql /data/3308/
[root@localhost ~]# ls /data/3308/
data my.cnf mysql
[root@localhost ~]# chown -R mysql.mysql /data/3308/
[root@localhost ~]# vim /data/3308/my.cnf
[root@localhost ~]# vim /data/3308/mysql
[root@localhost ~]# cd /usr/local/mysql/scripts/
[root@localhost scripts]# ./mysql_install_db \
> --basedir=/usr/local/mysql/ \
> --datadir=/data/3308/data \
> --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK
[root@localhost ~]# /data/3308/mysql start
Starting MySQL...
[root@localhost 3308]# netstat -anutp | grep 330
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 39537/mysqld
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 40254/mysqld
tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 42028/mysqld
[root@localhost ~]# mysqladmin -uroot -S /data/3308/mysql.sock password '1'
[root@localhost ~]# mysql -uroot -p1 -S /data/3308/mysql.sock
mysql> quit
Bye
[root@localhost ~]# /data/3308/mysql stop
Stoping MySQL...
MySQL启动基本原理说明
/etc/init.d/mysqld 是一个shell启动脚本,启动后最终会调用mysqld_safe脚本,最后调用mysqld服务启动mysql
初始化数据库时MySQL系统输出给出的启动方法:
mysqld_safe --user=mysql &
提示:
1. 当找回root密码时,会经常使用mysqld_safe --user=mysql &带参数启动
2. 我们自己开发脚本启动数据库时可能会用到这个启动方法。
3. /etc/init.d/mysqld和mysqld_safe --user=mysql &的启动实质是一样的。
MySQL关闭基本原理
优雅关闭
1. mysqladmin方法
[root@localhost ~]# mysqladmin -uroot -p123 shutdown
2. 自带的脚本
/etc/init.d/mysqld stop
3. kill、killall、pkill等进程管理命令(不建议使用,特别是生产环境,高并发情况会导致数据丢失,甚至无法启动)
觉得本文章不错的可以分享给您的朋友或订阅我,后期会分享更多的Linux技术文章
原文:http://blog.51cto.com/13639298/2153343