1、版本
mysql:5.7.37
centos:CentOS Linux release 7.9.2009
2、下载mysql
centos默认已经安装并准备好,下面开始下载mysql。
下面页面地址: https://downloads.mysql.com/archives/community/
下载完成后上传到服务器上面的 /packages 文件夹内,这里不再细说。如下:
3、安装mysql
3.1、检测是否安装过mysql
命令:rpm -qa|grep mysql
如图:
没有任何输出说明没有安装过mysql!
如果系统自带mysql,查询所有mysql 对应的文件夹,全部删除,使用命令:
whereis mysql
和
find / -name mysql
来查看所有mysql关联的目录,然后全部删除。
3.2、卸载CentOS7系统自带mariadb
查看系统自带的Mariadb,命令:rpm -qa|grep mariadb
,如图:
卸载系统自带的Mariadb,命令为 【rpm -e --nodeps 上图打印出来的名字 】,上图中,Mariadb的全名是 mariadb-libs-5.5.68-1.el7.x86_64 ,所有命令是:
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
执行结果:
再次查看系统自带的Mariadb,发现没了:
3.3、删除etc目录下的my.cnf
查看 /etc 目录下有没有 my.cnf 文件,如果有,删除:
rm -rf /etc/my.cnf
后面用到重新创建即可
3.4、创建mysql 用户组和用户
先检查mysql 用户组是否存在:
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
如图:
没有,接下来 创建mysql 用户组和用户:
groupadd mysql
useradd -g mysql mysql
如图:
这里已经创建成功了!
现在可以切换到mysql用户,首先执行 sudo su
:
然后用 su
命令切换用户,例如切换到mysql用户: su mysql
再切换会root用户,
每次切换到root用户都需要输入root用户的登录密码,登录成功后如下:
3.5、解压mysql安装包,目录授权
我们将mysql的根目录设计为 /usr/local/mysql ,下面以这个为目的操作。
首先解压mysql 安装包到 /usr/local 下面:
命令:
cd /packages
tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
结果如图:
执行完成后,会看到解压的过程。
然后进入 /usr/local 目录下面,将解压后的文件夹命名为 mysql:
mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql
如图:
这样 /usr/local/mysql 就是mysql的根目录,如图:
接下来,更改mysql根目录下所有文件夹所属的用户组、用户以及权限:
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
如下:
3.6、编译安装并初始化mysql
安装libaio.so.1的依赖库,
yum install -y libaio
进入mysql根目录下的 bin 文件夹,编译安装并初始化mysql,命令如下:
mkdir /usr/local/mysql/data
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
执行结果如下:
如上图,务必记住数据库管理员临时密码,画红色框的部分中,冒号后面的字符串就是。
3.7、配置 my.cnf 文件
接下来,在 目录 /etc 下面,创建 my.cnf 配置文件,并添加配置,命令:
vim /etc/my.cnf
如图:
内容是:
[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
[mysqld_safe]
log-error=/usr/local/mysql/log/err.log
pid-file=/usr/local/mysql/data/mysql.pid
直接保存退出即可。然后给my.cnf 文件授权:
chown -R mysql:mysql /etc/my.cnf
chmod -R 755 /etc/my.cnf
如图:
注意,上面的配置内容里,有两个文件:
/usr/local/mysql/log/err.log
/usr/local/mysql/data/mysql.pid
是没有的,这里直接创建并授权即可,创建命令如下:
mkdir /usr/local/mysql/log
touch /usr/local/mysql/log/err.log
touch /usr/local/mysql/data/mysql.pid
如图:
授权命令如下:
chown -R mysql:mysql /usr/local/mysql/log/err.log
chmod -R 755 /usr/local/mysql/log/err.log
chown -R mysql:mysql /usr/local/mysql/data/mysql.pid
chmod -R 755 /usr/local/mysql/data/mysql.pid
如图:
3.8、启动mysql 服务器
配置和授权完上面的内容,就可以直接启动mysql了,命令:
/usr/local/mysql/support-files/mysql.server start
如图:
可以看到结果是SUCCESS,启动成功了!
3.9、修改root用户的密码
前面我们在编译和安装mysql的时候,生成并记录下了临时密码,现在来修改这个密码为:12345678。
首先登录mysql,命令: /usr/local/mysql/bin/mysql -u root -p
,然后是输入密码
这里输入前面记住的临时密码,就可以登录成功,如图:
修改root密码语句:
set password for root@localhost = password('12345678');
回车就可以执行成功,如图:
刷新一下配置:
flush privileges;
如图:
然后输入quit;
就可以退出mysql,接下来从新登录,密码输入12345678,就可以看到登录成功,这里不再展示。
3.10、开放远程连接
现在mysql只能在服务器本地登录,如果在其它电脑使用Navicat等工具进行远程链接就会报错:
开放远程链接需要登录mysql执行语句,如下:
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
如图:
现在远程可以连接成功了:
3.11、设置开机自启
将服务文件 /usr/local/mysql/support-files/mysql.server
拷贝到init.d下,并重命名为mysqld
,命令:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
如图:
然后 赋予可执行权限,命令:
chmod +x /etc/init.d/mysqld
如图:
然后添加到服务列表中:
chkconfig --add mysqld
如图:
查看服务列表:
chkconfig --list
如图:
现在reboot重启服务器,启动后发现,mysql自启成功!
3.12、在防火墙中开放mysql端口
通常我们测试环境使用的服务器都是关闭防火墙的,为了方便。
但是正式环境,防火墙一定是开启的,如果有特殊需要,需要外界访问mysql,假如mysql使用的是默认的3306端口,这个时候需要单独开放3306端口。首先开启防火墙:
systemctl start firewalld
如图:
可以看到Navicat连接mysql又失败了:
下面单独开放3306端口,命令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
如图:
开放成功!
接下来需要让上面的开放端口配置立即生效,命令:
firewall-cmd --reload
如图:
现在用Navicat工具又能连接成功了,但是只是3306端口,如果在服务器上随便启动一个服务,如Java服务,这个服务是不能访问的,这里不再演示。
4、总结
以上是CentOS7安装MySQL5.7的全部过程!