若是使用./support-files/mysql.server 文件启动,则默认读取/etc/my.cnf 配置文件,这种方式有时候启动不了mysql
报错 :The server quit without updating PID filelinux
因此咱们使用启动命令mysqld_safe启动,多个实例只是重复下面的过程,更换目录和端口便可,固然也有一个mysql软件启动多个实例的方法。sql
解压mysql二进制包数据库
useradd -r -s /sbin/nologin mysql
tar xvf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz -C /opt
mv mysql-5.6.27-linux mysql && chown mysql.mysql -R /opt/mysql
初始化数据库vim
该过程必须到安装目录以相对路径去执行初始化命令。bash
yum -y install autoconf libaio*
cd /opt/mysql && scripts/mysql_install_db --user=mysql --datadir=/opt/mysql/data
建立配置文件socket
初始化完成后,默认会在./mysql/目录下建立my.cnf的文件ui
-rw-r--r-- 1 root root 492 5月 19 12:55 my.cnf
清空该文件,写入以下配置 vim ./my.cnf,能够根据本身需求修改配置spa
[mysqld] basedir = /opt/mysql datadir = /opt/mysql/data log-error = /opt/mysql/data/error.log pid-file = /opt/mysql/data/mysql.pid socket = /opt/mysql/data/mysql.sock port = 3306 user = mysql bind-address = 0.0.0.0 sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES default-storage-engine = INNODB lower_case_table_names = 1 collation-server = utf8_general_ci character-set-server = utf8 wait_timeout = 1200 interactive_timeout = 1200 [mysql] default_character_set = utf8
启动数据库code
为了启动方便,建立一个简单的启动脚本,首先说明一点,mysql启动时要在mysql目录下启动才会成功,不然会启动失败
#!/bin/bash mysql_dir=/opt/mysql cd ${mysql_dir} /bin/sh ${mysql_dir}/bin/mysqld_safe --defaults-file=${mysql_dir}/my.cnf &>/dev/null &
将其添加到开机自启
echo '/opt/mysql/start.sh' >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
补充命令
由于启动多个mysql,因此咱们指定了PID文件和套接字文件的位置,因此登陆时要指定套接字或者ip+端口方式登陆
mysql -S /opt/mysql/data/mysql.sock -uroot -p mysql -h 127.0.0.1 -P 3306 -uroot -p
关闭数据库,能够使用kill 直接将其杀死(守护进程和mysql进程都要杀死),但不推荐这种方式,建议使用mysqladmin命令
/bin/mysqladmin -S /opt/mysql/data/mysql.sock -uroot -p shutdown
查看mysql状态
/bin/mysqladmin -S /opt/mysql/data/mysql.sock -uroot -p ping