初探MySQL数据库之二(实战案例:实现MySQL的多实例)

实现MySQL的多实例

1.1 实验目的

	CentOS 7.7 yum安装mariadb并实现三个实例

1.1.1 环境要求

	一台主机
	系统:CentOS 7.X

1.1.2 前提准备

	关闭SElinux
	关闭防火墙
	时间同步

1.1.3 实现步骤

	1. 安装mariadb
		yum install mariadb-server
		Systemctl start mariadb
	2. 准备三个实例的目录
		mkdir -pv /mysql/{3306,3307,3308}/{data,etc,socket,log,bin,pid}
		chown -R mysql.mysql /mysql
	3. 分别生成数据库文件
		mysql_install_db --datadir=/mysql/3306/data --user=mysql
		mysql_install_db --datadir=/mysql/3307/data --user=mysql
		mysql_install_db --datadir=/mysql/3308/data --user=mysql
	4. 准备配置文件
		cp /etc/my.cnf /mysql/3306/etc/
		vim /mysql/3306/etc/my.cnf
		[mysqld]
		#加此行,如果port是3306可省略此行
		port=3306
		datadir=/mysql/3306/data/
		socket=/mysql/3306/socket/mysql.sock
		[mysqld_safe]
		log-error=/mysql/3306/log/mariadb.log
		pid-file=/mysql/3306/pid/mariadb.pid
		#重复上面步骤设置3307,3308
	5. 准备启动脚本
vim /mysql/3306/bin/mysqld
#!/bin/bash
port=3306
mysql_user="root"
mysql_pwd="centos"
cmd_path="/usr/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 --defaultsfile=${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
	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
#重复上述过程,分别建立3307,3308的启动脚本
	6. 启动关闭服务
		/mysql/3306/bin/mysqld start
		/mysql/3307/bin/mysqld start
		/mysql/3308/bin/mysqld start
	7. 登录实例
		/mysql/3306/bin/mysqld start
		mysql -uroot -S /mysqldb/3306/socket/mysql.sock
		mariadb>show variables like ‘port’ #确认连接的端口
	8. 修改root密码
		mysqladmin -uroot -S /mysqldb/3306/socket/mysql.sock password 'magedu' #加上新口令
		#或者登录mysql,执行下面也可以
		Mariadb>update mysql.user set password=password(“centos”) where user=’root’;
		Mariadb>flush privileges;
		#重复步骤,分别修改别外两个实例3307,3308对应root口令
	9. 测试连接
		 mysql -uroot -S /mysqldb/3306/socket/mysql.sock –p #提示输入口令才能登录
发布了39 篇原创文章 · 获赞 2 · 访问量 1045

猜你喜欢

转载自blog.csdn.net/weixin_45341507/article/details/103249501