0%

Linux安装配置MySQL

MySQL安装配置

配置 MySQL 源

首先,需要添加 MySQL 的 Yum 源,确保安装的是最新版本的 MySQL。

1
2
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

安装 MySQL Server

安装 MySQL Server:

1
sudo yum install mysql-community-server

启动 MySQL 服务

1
2
3
4
sudo systemctl start mysqld

# 开机自启
sudo systemctl enable mysqld

初次登入

获取 MySQL 临时 root 密码

在 MySQL 安装过程中,会生成一个临时的 root 密码,查看日志文件来获取它:

1
sudo grep 'temporary password' /var/log/mysqld.log

这将输出类似如下的临时密码:

1
2025-03-05T09:40:27.489070Z 1 [Note] A temporary password is generated for root@localhost: abc123xyz

记下临时密码(例如 abc123xyz)。

安全配置 MySQL

使用临时的 root 密码进行登录并运行 MySQL 安全配置:

1
sudo mysql_secure_installation

在此过程中,您将被要求输入临时的 root 密码,之后您可以设置一个新的 root 密码,移除匿名用户,禁用远程 root 登录等。

如果您已经设置了 root 密码,并且登录成功,您将看到类似如下的信息:

1
2
3
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.41 MySQL Community Server - GPL

登录

本地登入

使用临时的 root 密码进行登录,如果进行了安全配置改了密码就用改了的

1
mysql -u root -p

远端登入

远端登入有两个前提,在安全配置时选择允许远端登入

1
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : No

其实修改本地配置 并在服务器安全组开放对应端口:

1
sudo vim /etc/my.cnf

在 [mysqld] 部分添加:

1
2
[mysqld]
bind-address = 0.0.0.0

完整示例如下:

1
2
3
4
5
6
7
8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

bind-address = 0.0.0.0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

然后重启服务器

1
sudo systemctl restart mysqld

检查 MySQL 是否正确监听 IPv4:

1
sudo netstat -tulnp | grep mysql

如果显示:

1
tcp   0   0 0.0.0.0:3306    0.0.0.0:*   LISTEN   4101/mysqld

说明 MySQL 现在可以接受远程连接了。

这里用到了3306端口,想成功访问,得到服务器后台安全组添加一条IPv40 0.0.0,端口3306规则。

确保用户能远程访问

远端登入步骤后如果还不行,MySQL用户配置是否正确:
在服务器上本地进入MySQL

1
mysql -u root -p

检查用户权限:

1
SELECT user, host FROM mysql.user;

如果 root 只允许 localhost,需要修改:

1
2
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
FLUSH PRIVILEGES;

或者新建个远程用户,授予新用户足够的权限(这里给的是数据库的所有权限):

1
2
3
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

测试远程登入
直接root登入

1
mysql -h <MySQL服务器IP> -P 3306 -u root -p

或者myuser用户登入

1
mysql -h <MySQL服务器IP> -P myuser -u root -p

如果成功进入 mysql>,说明 MySQL 远程连接已配置完成!🚀。

如果还没法登录 可以看下服务器防火墙设置,并开放对应端口规则。

其他常用操作

查看所有数据库:

1
SHOW DATABASES;

选择一个数据库 db_name:

1
USE db_name;

查看当前数据库中的所有表:

1
SHOW TABLES;
-------------本文结束感谢您的阅读-------------