CentOS7安装MySQL5.7.30并配置远程连接

一、安装Mysql5.7

###1、yum方式安装MySQL YUM资源库

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

2、安装MySQL 5.7

yum install -y mysql-community-server

3、启动MySQL服务器和MySQL的自动启动

systemctl start mysqld.service
systemctl enable mysqld.service

4、获取初始密码

【注】由于MySQL从5.7开始不允许首次安装后使用空密码进行登录!为了加强安全性,系统会随机生成一个密码以供管理员首次登录使用。

cat /var/log/mysqld.log|grep 'A temporary password'

输出结果:
2020-06-29T05:00:42.341954Z 1 [Note] A temporary password is generated for root@localhost: iK>ll:gfi5;&

5、进入mysql

mysql -p

Enter password:【输入密码,不可见。输完后回车即可】

【---------------以下命令都是mysql指令----------------】

6、修改默认密码

使用随机生产的密码登录到服务端后,必须马上修改密码,不然会报如下错误

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

set password=password(<your_password0>);
  • 注意事项:
    初次修改密码要求密码必须包含大小写字母、数字和符号

二、配置远程连接

1、修改my.cnf配置文件

vultr的CentOS7中,my.cnf所在路径为/etc/my.cnf

vi /etc/my.cnf

打开文本后添加一条语句

bind-address = *

表示任意IP的远程客户端可以连接数据库。

2、修改mysql.user表host值

  1. 查看user表用户的host值。
use mysql;
select user, host from user;

我们想用root用户来远程访问数据库,但root用户的host默认是localhost,这就表示只能本地登录,所以需要把localhost改为%
2. 修改用户hsot

update user set host = '%' where user = 'root';
  1. 刷新权限
flush privileges;

3、重启MySQL

退出mysql,执行重启指令。

# 这是Linux指令!
systemctl restart mysqld.service

4、配置防火墙

  1. 检查防火墙状态
firewall-cmd --state

running 表示开启了

  1. 开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • zone #作用域
  • add-port=3306/tcp #添加端口,格式为:端口/通讯协议
  • permanent #永久生效,没有此参数重启后失效
  1. 刷新防火墙配置
firewall-cmd --reload

【--------------配置杂项拓展---------------】

密码设置原则

密码的设定规则这个与Mysql 密码安全策略validate_password_policy的值有关,validate_password_policy可以取0、1、2三个值:
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary

默认的数值是1,符合长度,且必须含有数字,小写或大写字母,特殊字符。
所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

如果想设定简单密码可以做以下2个修改:

set global validate_password_policy=0;
set global validate_password_length=1;

这样就可以直接使用像“123456”这样的密码了。

创建用户

# 指定ip可以访问
create user 'username'@'192.118.1.1' identified by '123';
create user 'username'@'192.118.1.%' identified by '123';
#  任何ip可以访问
create user 'username'@'%' identified by '123';
# 删除用户
drop user 'username'@'ip地址';
# 重定向用户到新的用户名和ip地址
rename user 'username名'@'IP地址' to '新用户名'@'IP地址';
#  修改用户密码
set password for '用户名'@'IP地址'=Password('新密码');

用户授权

#查看权限
show grants for '用户'@'IP地址'

#授权用户仅对db1.t1文件有查询、插入和更新的操作
grant select ,insert,update on db1.t1 to "username"@'%';

# 表示有所有的权限,除了grant这个命令,这个命令是root才有的。用户对db1下的t1文件有任意操作
grant all privileges  on db1.t1 to "username"@'%';
#用户对db1数据库中的文件执行任何操作
grant all privileges  on db1.* to "username"@'%';
#用户对所有数据库中文件有任何操作
grant all privileges  on *.*  to "username"@'%';
 
#取消权限
 
# 取消用户对db1的t1文件的任意操作
revoke all on db1.t1 from 'username'@"%";  

# 取消来自远程服务器的用户对数据库db1的所有表的所有权限
revoke all on db1.* from 'username'@"%";  

取消来自远程服务器的用户所有数据库的所有的表的权限
revoke all privileges on *.* from 'username'@'%';

修改用户密码

  1. 进入mysql数据库
use mysql;
  1. 修改user表,mysql5.7版本之后user表里已经没有password这个字段了,password字段改成了authentication_string,所以修改命令:
update user set authentication_string=password('123456') where user='root';

这里,修改了用户名为“root”的用户密码为“123456”。

  1. 刷新权限
flush privileges;

mysql的一些设置

查看MySql版本

select version();

mysql备份数据库

# 备份:数据表结构+数据
mysqdump -u root db1 > db1.sql -p

# 备份:数据表结构
mysqdump -u root -d db1 > db1.sql -p

#导入现有的数据到某个数据库
#1.先创建一个新的数据库
create database db10;
# 2.将已有的数据库文件导入到db10数据库中
mysqdump -u root -d db10 < db1.sql -p

猜你喜欢

转载自blog.csdn.net/weixin_38708854/article/details/107018896
今日推荐