一、安装前准备
1. 检查是否已安装MySQL,执行命令:
[root@localhost ~]# rpm -qa | grep mysql
从执行结果可以看出已安装的MySQL版本,如mysql-libs-5.1.73-5.el6_6.x86_64
。若已安装,执行卸载命令:
[root@localhost ~]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
再次执行查询命令,确认是否已卸载:
[root@localhost ~]# rpm -qa | grep mysql
2. 查询所有MySQL相关的文件夹:
[root@localhost ~]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost ~]# find / -name mysql
删除相关目录或文件:
[root@localhost ~]# rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql
验证是否删除完毕:
[root@localhost ~]# whereis mysql
mysql:
[root@localhost ~]# find / -name mysql
3. 检查MySQL用户组和用户是否存在,若不存在则创建:
[root@localhost ~]# cat /etc/group | grep mysql
[root@localhost ~]# cat /etc/passwd | grep mysql
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql mysql
4. 从MySQL官网下载适用于Linux的安装包:
下载命令:
[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
也可以直接访问MySQL官网选择其他版本进行下载。
二、安装MySQL
1. 在执行wget命令的目录下或上传目录下找到MySQL安装包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
,执行解压命令:
[root@localhost ~]# tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# ls
mysql-5.7.24-linux-glibc2.12-x86_64
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
解压完成后,将解压文件移动到/usr/local/mysql
:
[root@localhost ~]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
2. 在/usr/local/mysql
目录下创建data目录:
[root@localhost ~]# mkdir /usr/local/mysql/data
3. 更改mysql目录下所有文件和目录的所属用户组和用户,以及权限:
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql
[root@localhost ~]# chmod -R 755 /usr/local/mysql
4. 编译安装并初始化MySQL,务必记住初始化输出日志末尾的密码(数据库管理员临时密码):
[root@localhost ~]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
补充说明:
此时可能会出现错误,如缺少依赖库文件。首先检查该链接库文件是否已安装:
[root@localhost bin]# rpm -qa | grep libaio
若未安装,使用以下命令安装:
[root@localhost bin]# yum install libaio-devel.x86_64
安装成功后,继续运行数据库的初始化命令。若仍出现错误,如缺少numactl库文件,使用以下命令安装:
[root@localhost bin]# yum -y install numactl
5. 运行初始化命令成功后,输出日志如下:
2023-10-01T12:34:56.789012Z 1 [Note] A temporary password is generated for root@localhost: your_temp_password
记录日志最末尾位置root@localhost:
后的字符串,此字符串为MySQL管理员临时登录密码。
6. 编辑配置文件my.cnf
,添加配置如下:
[root@localhost bin]# vi /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
7. 启动MySQL服务器:
[root@localhost ~]# /usr/local/mysql/support-files/mysql.server start
显示如下结果,说明数据库安装成功:
Starting MySQL... SUCCESS!
若出现错误提示,如PID文件未更新,检查是否存在MySQL和mysqld的服务,若存在则结束进程,再重新执行启动命令:
# 查询服务
ps -ef | grep mysql
ps -ef | grep mysqld
# 结束进程
kill -9 PID
# 启动服务
/usr/local/mysql/support-files/mysql.server start
8. 添加软连接,并重启MySQL服务:
[root@localhost ~]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost ~]# service mysql restart
9. 登录MySQL,修改密码(密码为步骤5生成的临时密码):
[root@localhost ~]# mysql -u root -p
Enter password:
mysql> set password for root@localhost = password('yourpass');
10. 开放远程连接:
mysql> use mysql;
mysql> update user set Host='%' where User='root';
mysql> flush privileges;
11. 设置开机自动启动:
1. 将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2. 赋予可执行权限
[root@localhost ~]# chmod +x /etc/init.d/mysqld
3. 添加服务
[root@localhost ~]# chkconfig --add mysqld
4. 显示服务列表
[root@localhost ~]# chkconfig --list