之前用centos8安装mysql-8,rocky10安装mysql都失败了,因为版本问题,最后mysql都没法执行
见上文:
【入门】【失败】Linux下
mysql-8.0.22-linux-x64.tar.gz 安装
这次换低版本学习和测试验证
相关说明
安装文件:mysql-5.7.38-linux-x64.tar.gz
mysql安装目录:/usr/local/mysql
mysql上传临时目录:/tmp/down/
一、拷贝文件到Linux服务器
#windows下拷贝文件到Linux服务器
scp E:\\appFiles\\vmware\\soft\\mysql\\mysql-5.7.38-linux-x64.tar.gz fuzhx@192.168.203.133:/tmp/down/
二、创建存放目录和解压
#创建目录
sudo mkdir -p /usr/local/mysql
#解压
sudo tar -zxvf mysql-5.7.38-linux-x64.tar.gz
#移动文件到mysql目录
sudo mv mysql-5.7.38-linux-x64/* /usr/local/mysql
三、创建 MySQL 用户和组
# 创建mysql用户组和用户
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
# 设置目录权限
sudo chown -R mysql:mysql /usr/local/mysql
四、创建数据目录并初始化
# 创建数据目录
sudo mkdir -p /data/mysql
sudo chown -R mysql:mysql /data/mysql
# 进入mysql的目录
cd /usr/local/mysql
# 初始化MySQL(生成初始密码)
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
# 记录初始化生成的临时密码(重要!后续登录需要)
grep 'temporary password' /data/mysql/error.log
执行bin/mysqld --initialize后,控制台输出有mysql的临时root密码:pjh#n2ACpqu<
2025-06-28T02:04:07.619057Z 1 [Note] A temporary password is generated for root@localhost: pjh#n2ACpqu<
五、配置 MySQL 服务
# 创建my.cnf配置文件
sudo vi /etc/my.cnf
# 添加以下内容(根据需求调整)
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock
port = 3306
character-set-server = utf8mb4
default-storage-engine = InnoDB
innodb_buffer_pool_size = 512M
skip-name-resolve = 1
[client]
socket = /tmp/mysql.sock
default-character-set = utf8mb4
vim后,原先内容我都注释掉,改用上面的配置
六、启动 MySQL 服务
# 复制服务脚本
sudo cp support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
# 设置开机自启
sudo chkconfig --add mysqld
sudo chkconfig mysqld on
# 启动MySQL
sudo service mysqld start
# 验证服务状态
sudo service mysqld status
七、配置环境变量
# 编辑bashrc文件
echo 'export PATH=$PATH:/usr/local/mysql/bin' | sudo tee -a /etc/profile
# 使配置生效
source /etc/profile
/etc/profile原先的内容
执行脚本echo 'export PATH=$PATH:/usr/local/mysql/bin' | sudo tee -a /etc/profile配置完毕后的内容
八、安全初始化
mysql这个命令,我之前在centos8安装时候,老是失败执行不了,这次是关键点了
# 使用临时密码登录
mysql -u root -p
# 修改root密码(替换为强密码)
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword123!';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'db.13579';
# 删除匿名用户(可选)
DELETE FROM mysql.user WHERE User='';
# 禁止root远程登录(可选)
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
# 删除测试数据库(可选)
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
# 刷新权限
FLUSH PRIVILEGES;
mysql访问成功了:
修改密码和刷新权限:
九、windows电脑终端测试一下访问
telnet 192.168.203.133 3306
访问失败,需要考虑开启Linux防火墙(安全可选)
十、配置防火墙(可选)
# 开放MySQL端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
十一、验证安装
# 检查MySQL版本
mysql --version
# 使用新密码登录
mysql -u root -p
十二、windows侧登录验证
mysql -h 192.168.203.133 -u root -p
报错:
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -h 192.168.203.133 -u root -p
Enter password: ********
ERROR 1130 (HY000): Host '192.168.203.1' is not allowed to connect to this MySQL server
需要mysql授权连接
十三、在 MySQL 服务器上授权远程访问
方式一:授权指定 IP 访问
如果你确认客户端 IP 是 192.168.203.1,则在 MySQL 服务器上执行:
-- 使用 root 用户登录 MySQL
mysql -u root -p
-- 授权 root 用户从 192.168.203.133 访问,并设置密码
#GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.203.1' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.203.1' IDENTIFIED BY 'db.13579' WITH GRANT OPTION;
-- 刷新权限表
FLUSH PRIVILEGES;
方式二:授权所有 IP 访问(不推荐,仅用于测试)
若需允许任意 IP 访问(存在安全风险):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
windows的cmd下再次验证:
安装终于成功了