Linux安装MySQL

Linux安装MySQL

下载安装包

MySQL官网下载地址

1

根据Linux操作系统版本下载正确的安装包

安装

选择一个目录,将安装包上传至该目录

1
cd /usr/local/

安装MySQL包

1
yum -y install mysql80-community-release-el7-10.noarch.rpm

安装MySQL

1
yum -y install mysql-community-server

如果执行命令过程中提示:Unable to find a match: mysql-community-server,执行以下命令

1
yum module disable mysql

设置权限

通过chown命令改变文件的拥有者和群组
-R:处理指定目录以及其子目录下的所有文件

1
chown mysql:mysql -R /var/lib/mysql/

启动MySQL服务

1
service mysqld start

查看MySQL运行状态

1
service mysqld status

1

看见running就表示启动成功了

查看初始密码

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

1

如果能正常查看到,则OK。如果查看不到,则表示没有密码

进入数据库

1
mysql -u root -p

输入命令后回车,会让你输入密码,如果没有密码,直接回车即可

如果显示数据库无法访问

1

停止MySQL服务

1
service mysqld stop

编辑配置文件

1
vi /etc/my.cnf

添加skip-grant-tables

1

添加skip-grant-tables,这样MySQL可以免密登录。

再次启动MySQL服务

1
service mysqld start

再次登录MySQL就可以进入了

1
mysql -u root -p

切换mysql数据库

1
use mysql;

更改密码

1
2
3
4
5
6
7
8
9
10
# 更改密码,XXX为设置的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'XXX';
# 一般执行完上面一句会报如下错误
# ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
# 在mysql中输入flush privileges重新加载MySQL权限信息
flush privileges;
# 再次更改密码,XXX为设置的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'XXX';
# 退出MySQL
exit;

修改配置文件,删除skip-grant-tables

1
2
3
4
5
6
# 停止MySQL服务
service mysqld stop
# 修改配置文件,删除skip-grant-tables
vi /etc/my.cnf
# 开启MySQL服务
service mysqld start

使用新密码即可登录

注意

如果访问MySQL数据库失败,则记得看下下面三个配置是否OK

服务器的防火墙是否开放MySQL端口3306

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看firewalld状态,若是dead状态,即防火墙未开启
systemctl status firewalld

# 查看防火墙是否开放3306端口
firewall-cmd --query-port=3306/tcp

# 关闭防火墙
systemctl stop firewalld

# 设置3306端口为永久开放
firewall-cmd --add-port=3306/tcp --permanent

# 重启防火墙(设置了新的端口记得先关闭,再重启)
systemctl start firewalld

如果是云服务器,查看云安全组规则是否开放了3306端口

不在同一局域网内连接,需要授权远程用户登录

若提示Host is not allowed to connect to this MySQL server则需要授权远程用户登录

1

1
2
3
4
5
6
7
8
9
10
# 登录MySQL
mysql -u root -p
# 切换mysql数据库
use mysql;
# 授权远程用户登录
update user set host = '%' where user = 'root';
# 重新加载MySQL权限信息
flush privileges;
# 退出MySQL
exit;
如果对您有帮助,可以打赏呦!