CentOS7 通过 tar 安装MySQL
参考引用:https://blog.csdn.net/m0_67393413/article/details/126326706
1.安装前准备
1.1 清理原有的mysql数据库
<1> 查找相关安装包
rpm -qa | grep mysql
<2> 可能显示的查找结果
mysql80-community-release-el7-1.noarch
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-client-8.0.11-1.el7.x86_64
<3> 使用命令依次删除上面的程序
yum remove mysql-xxx-xxx-xxx
<4> 查找出所用的配置文件
find / -name mysql
<5> 可能显示的查找结果
/etc/logrotate.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/etc/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/local/mysql
<6> 使用命令依次删除上面的配置文件
rm -rf /var/lib/mysql
1.2 删除MariaDB的文件
由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.
<1> 查找相关安装包
rpm -qa | grep mariadb
<2> 可能显示的查找结果
mariadb-libs-5.5.68-1.el7.x86_64
<3> 强制删除
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
使用命令 rpm -e mariadb-libs-5.5.68-1.el7.x86_64 可能出现错误,所以直接强制删除
rpm -e mariadb-libs-5.5.68-1.el7.x86_64
错误:依赖检测失败:
libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-9.el7.x86_64 需要
libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-9.el7.x86_64 需要
1.3 添加账户 mysql(非必要)
给当前linux系统添加账户,以后可用于管理mysql数据库
userdel mysql
groupdel mysql
groupadd mysql
useradd -g mysql mysql
2.安装 mysql
以 mysql 5.7 版本的安装为例
2.1 下载
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
选择对应的环境下载即可。下载完成后再通过xftp等工具将安装包上传到Centos7系统中,然后进行安装

2.2 解压、创建目录、安装
cd /home/suty # 首先通过cd命令进入到安装包所在的目录、根据情况自行修改
tar -zxvf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz # 解压
mv mysql-5.7.39-linux-glibc2.12-x86_64 /usr/local/mysql # 移动文件到指定目录
cd /usr/local/mysql && mkdir data # 新建文件夹data,MySQL的表结构、表数据及索引等信息都存储在该目录下
# 进入mysql的目录开始安装,查看安装信息记住初密码
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
记住初始密码:找有[Note] A temporary password这一行
[root@localhost mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
2022-10-10T13:56:15.343774Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-10-10T13:56:15.774620Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-10-10T13:56:15.859885Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-10-10T13:56:15.921524Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 4eea8609-48a3-11ed-bb8c-000c29d67f38.
2022-10-10T13:56:15.924606Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-10-10T13:56:16.308821Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-10-10T13:56:16.308849Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-10-10T13:56:16.311186Z 0 [Warning] CA certificate ca.pem is self signed.
2022-10-10T13:56:16.500268Z 1 [Note] A temporary password is generated for root@localhost: lG_dQ+sN!7 #记住密码,后面再改一个容易记的
2.3 移动启动文件
将安装后的路径 /usr/local/mysql/support-files/中的mysql.server 复制到 /etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2.4 修改配置文件 my.cnf
# 1.如果 /usr/local/mysql/support-files 有 my-default.cnf 则将其拷贝到 /etc/my.cnf
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
# 2.如果没有则在/etc下新建my.cnf文件
touch /etc/my.cnf
# 3.编辑配置文件,参考【my.cnf 配置文件内容】
vi /etc/my.cnf
# 4.文件权限
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysqld
点击查看【my.cnf 配置文件内容】
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
skip-name-resolve
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
2.5 添加软链接 | 配置环境变量
为了便于执行 MySQL命令的时候不用到MySQL的安装目录,添加软链接或配置环境变量
添加软链接和配置环境变量任选一个操作即可,同时都进行配置也没问题
- 添加软链接
ln -fs /usr/local/mysql/bin/mysql /usr/bin/mysql
- 设置环境变量
vi /etc/profile # 设置环境变量,以便能在任意地方运行mysql命令登录数据库
## 在文件的最后,加上下面三行:##
# mysql environment
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile # 刷新,环境变量配置生效
2.6 设置防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent # 防火墙开放mysql数据库端口3306
firewall-cmd --reload # 重启防火墙
firewall-cmd --list-all # 查看防火墙状态,检查是否已开放3306端口
2.7 mysql修改密码、远程权限
/etc/init.d/mysqld start #(1)启动mysql(或者使用service mysqld start)
mysql -u root -p #(2)然后输入第03步的初始密码,后登录,以下在mysql里执行
mysql> set password = password('778899'); # 修改密码也可以指定用户:set password for 'root'@'localhost'=password('778899');
## 如果出错,试试这个修改命令: ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '778899@Xm';
mysql> flush privileges; # 刷新配置
mysql> grant all privileges on *.* to 'root'@'%' identified by '778899' with grant option; # 添加远程访问本服务器的MySQL数据库权限问权限
mysql> flush privileges; # 刷新配置
mysql> exit; # 退出mysql
如果密码创建错了,重建方法参考:https://blog.csdn.net/qq_36631900/article/details/103404515
2.8 重启MySQL
使用以下任一命令,重启MySQL
/etc/init.d/mysqld restart
./support-files/mysql.server restart
service mysqld restart
2.9 设置开机启动
可能非必要,可以reboot重启验证一下
chkconfig --list mysqld # 检查自启动项列表中没有mysqld
chkconfig --add mysqld # 如果没有设置过,就添加
浙公网安备 33010602011771号