mysql5.7 基于二进制编译多实例安装 cd /usr/local/src/ 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 msyql

规划相关目录 mkdir /mysql/{3307,3308}/{data,etc,socket,log,pid} -pv touch /mysql/3307/log/mysql.log touch /mysql/3308/log/mysql.log

权限修改 chown -R mysql.mysql /mysql chown -R mysql.mysql /user/local/mysql

准备数据库数据文件(初始化各个实例:初始化完后会在日志中生成密码,记得保存,初始化密码用到;如果没有生成 执行 grep 'temporary password' /var/log/mysqld.log查找 ) /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/mysql/3307/data/ --basedir=/usr/local/mysql /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/mysql/3308/data/ --basedir=/usr/local/mysql

开启各实例的SSL连接 /usr/local/mysql/bin/mysql_ssl_rsa_setup --initialize --user=mysql --datadir=/mysql/3307/data/ --basedir=/usr/local/mysql /usr/local/mysql/bin/mysql_ssl_rsa_setup --initialize --user=mysql --datadir=/mysql/3308/data/ --basedir=/usr/local/mysql

--basedir:mysql的安装目录 --datadir:数据库的数据文件目录

准备配置文件3308 vim /mysql/3308/etc/my.cnf [mysqld] port=3308 datadir=/mysql/3308/data socket=/mysql/3308/socket/mysql.sock sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[mysqld_safe] log-error=/mysql/3308/log/mariadb.log pid-file=/mysql/3308/pid/mariadb.pid

准备配置文件3307 [mysqld] port=3307 datadir=/mysql/3307/data basedir=/usr/local/mysql socket=/mysql/3307/socket/mysql.sock sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[mysqld_safe] log-error=/mysql/3307/log/mysql.log pid-file=/mysql/3307/pid/mysql.pid

准备启动脚本(3307 3308) vim /etc/init.d/mysql_3307 #!/bin/bash #chkconfig: 345 80 2 port=3307 mysql_user="root" mysql_pwd=" " cmd_path="/usr/local/mysql/bin" mysql_basedir="/mysql" mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"

function_start_mysql() { if [ ! -e "$mysql_sock" ];then printf "Starting MySQL...\n" ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf &> /dev/null & else printf "MySQL is running...\n" exit fi }

function_stop_mysql() { if [ ! -e "$mysql_sock" ];then printf "MySQL is stopped...\n" exit else printf "Stoping MySQL...\n" ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown &> /dev/null fi }

function_restart_mysql() { printf "Restarting MySQL...\n" function_stop_mysql sleep 2 function_start_mysql }

case $1 in start) function_start_mysql ;; stop) function_stop_mysql ;; restart) function_restart_mysql ;; *) printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n" esac

3308 启动脚本改下端口即可

启动 /etc/init.d/mysql_3307 start ss -antpu |grep 3307 ps -ef |grep 3307

加入开机启动 chkconfig --add mysql_3307 chkconfig --add mysql_3308 chkconfig --list

登录方式三种 mysql -uroot -h127.0.0.1 -P 3307 -p密码 mysql -uroot -S /mysql/3307/socket/mysql.sock -p密码 mysql -S /mysql/3307/socket/mysql.sock -p

输入之前初始化生成的密码,进入进行密码修改才能操作 set password=password('123456');

设置远程连接mysql: GRANT ALL PRIVILEGES ON . TO '用户'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

FLUSH PRIVILEGES;