Linux MySql 8 安装与多实例启动学习
主要记录下,在学习Mysql8的一些细节和踩过的坑。
环境:Centos7
Mysql版本:mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
单个mysql安装及使用步骤:
1.下载好mysql后,上传到/usr/local目录下进行解压
tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
2.重命名为mysql
mv mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz mysql
3.创建mysql账户
groupadd mysql
useradd mysql
4.对mysql下所有的文件授权给mysql用户
cd /usr/local/mysql
chown -R mysql:mysql ./
5.给mysql用户进行授权
vi /etc/sudoers
在92行处多加上一行,保存退出
mysql ALL=(ALL) ALL
后续操作都切换成mysql这个用户来进行操作
6.切换成mysql用户
su mysql
7.进入mysql文件夹,进行初始化
cd /usr/local/mysql
7-1.把etc目录下的my.cnf复制到mysql文件夹下,并且更改名为my.cnf.backup
cp /etc/my.cnf /usr/local/mysql
mv /etc/my.cnf /etc/my.cnf.backup
如果这里说没有权限进行复制这个文件,切换为root,进行操作,再进入mysql文件下对my.cnf进行重新授权给mysql这个用户
7-2.进入mysql文件夹下对my.cnf进行配置修改
vi my.cnf
[client]
port=13306 #这里可以修改为你想要的端口
#注意:这里要是没配置socket,是不能用mysqladmin shutdown,会失败,
#需要加上 mysqladmin -S /usr/local/mysql/mysql.sock shutdown
#不太推荐这样关闭,比较麻烦,所以记得要在这里加上socket配置
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
tmpdir=/tmp
socket=/usr/local/mysql/mysql.sock
mysqlx_socket=/tmp/mysqlx.sock
port=13306 #这里可以修改为你想要的端口
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
log-error=/usr/local/mysql/error.log
pid-file=/usr/local/mysql/mysql.pid
保存退出
7-3.初始化mysql
bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/ --initialize-insecure
这样初始化mysql,后续连接mysql登录的时候就不需要密码,如果直接用 --initialize 初始化(官方推荐),会有一个自动生成的密码,一般会显示出来。如果没有显示,初始化后进入error.log查看密码
本学习笔记就不对开机自启进行介绍,很多技术贴都有写,可自行查询。这里不写的原因是方便后面多个mysql实例运行而做准备。
7-4.启动mysql
mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
注意:如果启动后,出现直接mysql.pid ended 进入my.cnf 把mysqlx_socket 一整行删除,再重新启动
7-5.连接mysql
mysql --defaults-file=/usr/local/mysql/my.cnf -uroot -p
7-6.修改mysql密码
alter user 'root'@'localhost' identified by '123456';
exit
7-7.退出mysql及关闭mysql
mysqladmin --defaults-file=/usr/local/mysql/my.cnf shutdown
以上就是安装以及启动的详解
多实例
上面介绍了mysql的安装及使用,多实例mysql的安装就如同文章开始部分。
同样都安装在/usr/local/下,并且两个mysql的文件夹名称不能一致
mysql2的配置文件my.cnf的详细如下图
注意:端口号,mysqlx_socket,mysqlx_port 都需要修改 (可与7-2对比区别不同)
初始化步骤参照上方
启动两个mysql
mysqld_safe --defaults-file==/usr/local/mysql/my.cnf &
mysqld_safe --defaults-file==/usr/local/mysql2/my.cnf &
查看进程
ps -ef|grep mysql
进入不同mysql
mysql --defaults-file=/usr/local/mysql/my.cnf -uroot -p
mysql --defaults-file=/usr/local/mysql2/my.cnf -uroot -p
关闭mysql
mysqladmin -defaults-file=/usr/local/mysql/my.cnf shutdown
mysqladmin -defaults-file=/usr/local/mysql2/my.cnf shutdown
至此多实例的操作就到这里,不过多实例启动的方式是有很多种,笔者只提到了一种,所以想要了解的各位读者大大就自行去学习,研究。
关于linux mysql的最核心部分都是my.cnf这个配置文件,每个[]里面的内容会对应bin目录下的指令,更详细的东西就待大家去探讨学习了,本文纯属个人学习记录,谢谢。