linux配置mysql

上一级页面:mysql安装配置-linux

前言

linux安装好mysql后,需要进行初始化和配置

查看mysql的默认安装路径在/usr/share/mysql

1
whereis mysql

Pasted%20image%2020220519143929.png

可以看到,使用deb文件安装,其安装目录在/usr/share/mysql

1
ll /usr/share/mysql
1
whereis mysql57

可以看到手动安装,其安装目录在/usr/local/mysql57

添加安全保护

切换root用户

1
sudo -s

前往安装目录

1
cd /usr/local/mysql57

在生产中使用 MySQL 5.7 之前,您应该首先保护它。 您可以通过运行以下命令来做到这一点:

1
bin/mysql_secure_installation  --socket=/tmp/mysql57.sock --defaults-file=/usr/local/mysql57/my.cnf --user=mysql

如果是mysql8.x,命令类似上面,更改一下默认配置文件路径

输入您的 MySQL 根密码并回答所有安全问题。

确认密码安全政策

1
SHOW VARIABLES LIKE 'validate_password%';

部署自动支持安全连接的服务器mysql_ssl_rsa_setup

如果要部署自动支持安全连接的服务器,请使用mysql_ssl_rsa_setup实用程序创建默认 SSL 和 RSA 文件:

切换到 root用户

1
sudo -s

前往安装目录

1
cd /usr/local/mysql57
1
bin/mysql_ssl_rsa_setup --socket=/tmp/mysql57.sock --defaults-file=/usr/local/mysql57/my.cnf --user=mysql

1277635-20200219142922467-522094703.png

修改密码

由于默认安装的MySQL没有password字段,密码存储在authentication_string字段中,不过password()方法还能用。

切换到 root用户

1
sudo -s

在MySQL中逐行执行下面语句修改密码

1:进入MySQL

1
/usr/local/mysql80/bin/mysql --socket=/tmp/mysql80.sock -uroot -p

2: 输入以下命令设置密码

1
2
3
4
5
6
# 切换到mysql数据库
use mysql;
#设置密码:password:新密码;user: 用户
alter user'root'@'localhost' identified by '新密码';
# 刷新MySQL的系统权限相关表
flush privileges;

10903463-13efadbae65a4dab.png.webp

查看修改结果

1
select host, user, authentication_string, plugin from user;

设置远程连接

如何在MySQL 8.0中向root用户授予所有权限 - 堆栈溢出 (stackoverflow.com)

1:输入以下命令

PASSWORD 修改为你的密码

1
2
3
4
5
6
7
8
9
10
11
# 切换到mysql数据库
use mysql;

# 设置一个远程登陆专用用户,PASSWORD 修改为你的密码。 用户名为 root
CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';

# 设置user用户远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

# 刷新MySQL的系统权限相关表
flush privileges;

10903463-6032ae449c166e5c.png.webp

查看修改结果

1
SELECT User,Host FROM mysql.user;

要更改远程登录用户的密码,执行下面的命令

1
2
3
4
5
6
# 切换到mysql数据库
use mysql;
#设置密码:password:新密码;user: 用户
alter user'root'@'%' identified by '新密码';
# 刷新MySQL的系统权限相关表
flush privileges;

登录后确定basedir和datadir

datadir默认路径:

  • windows在C:\ProgramData\MySQL\MySQL Server 5.6\data(注意:ProgramData文件夹是隐藏的,需要先显示出来)

  • linux在/var/lib/mysql(这个是自己初始化mysqld --initialize的时候指定的)

2.在mysql工具中使用命令: 确定data目录在哪里(MySQL的数据存放路径)

1
show global variables like "%datadir%";

同理还能确定basedir

1
show global variables like "%basedir%";

设置文件导出路径

MySQL :: MySQL 5.7 参考手册 :: 5.1.7 服务器系统变量

来到mysql安装目录下

1
cd /usr/local/mysql57
1
2
3
mkdir mysql-files 
chown mysql:mysql mysql-files
chmod 750 mysql-files

Navicat远程连接验证

10903463-b7cc118fcf189f5e.png.webp

如提示不能成功连接,可能需要添加需要监听的端口

1
/usr/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

注意:常用命令

–退出mysql命令窗口

1
exit

–查看mysql状态

1
service mysql status

–停止mysql

1
service mysql stop

–启动mysql

1
service mysql start

参考、引用、致谢