mysql5.7 基于二进制编译多实例安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql5.7 基于二进制编译多实例安装相关的知识,希望对你有一定的参考价值。

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;

以上是关于mysql5.7 基于二进制编译多实例安装的主要内容,如果未能解决你的问题,请参考以下文章

MySQL5.7单实例二进制包安装方法

linux安装mysql5.7.30 及配置多实例

Linux第十周(二进制安装MYSQL5.7,编译安装MYSQL5.7,二进制安装mariadb10.4)

Mysql 5.7.21单机多实例安装

源码编译并二进制安装MySQL5.7 3 二进制安装mariadb10.4

mysql5.7编译安装