关于ubuntu18.04MySQL安装即初始化过程中的一些问题

2020-03-02  本文已影响0人  小艾咪

MySQL安装

直接运行sudo apt install mysql-server即可安装MySQL

MySQL初始化

ubuntu18.04下安装完成后默认root用户无登陆密码,但注意登陆为linux的root账户时可免密登陆非root用户使用sudo mysql登陆。
登陆后可更改root密码操作如下:
直接sudo mysql即可登陆。登陆成功后输入use mysql使用mysql输入 alter user "root"@"localhost" identified with mysql_native_password by "新密码"修改root密码。使用flush privileges刷新权限。所有操作完成后quit退出后即可使用普通linux非root用户登陆MySQL。你也可是使用其他文章中普遍使用的debian.conf文件登陆法。

设置远程登陆

登陆到root用户使用 grant all privileges on 数据库.* to 'sql用户'@'%' identified by '密码'修改权限,记得flush privileges刷新权限。
这里说明一下%含义,指任意主机,具体参照mysql官方文档如下图(文档地址)

host含义对照表
在执行授权命令时可能遇到这个错误(如果有幸读者不是我自己,你可能不会遇到这个问题)

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

原因是MySQL的安全认证插件认为你的密码强度过低不适合做此操作你可以使用show variables like 'validate_password%'查看当前密码限制条件该命令执行结果如下


其中validate_password_policy为密码验证等级可选值包括LOW、MEDIUM、STRONG分别对应不同的验证条件(具体没记住用的时候查一下就行)。使用set global validate_password_policy=LOW将验证等级设为LOWflush privileges刷新权限.

此时你有可能可以执行grant all privileges on 数据库.* to 'sql用户'@'%' identified by '密码'为什么说有可能。这要看你的密码长度是否小于validate_password_length这个参数如果小于则你的密码依然不符合MySQL当前验证机制。

可以使用set global validate_password_length=你的密码长度后刷新权限再执行grant all privileges on 数据库.* to 'sql用户'@'%' identified by '密码'

其原理就是修改上图中这些属性值让你的密码可以通过表中的检查即可。掌握原理其他属性也可以照葫芦画瓢。

如果此时依然无法远程连接到你的mysql,检查MySQL配置文件bind_address属性可能其值为127.0.0.1将其设置为0.0.0.0。完成设置后输入systemctl restart mysql重启MySQL(这里需不需要重启MySQL服务笔者并不确定,因为懒也不想测试了。重启下也没有坏处emmm)

不同版本的MySQL配置文件位置有所不同笔者的版本为5.7.29配置文件位置为/etc/mysql/mysql.conf.d/mysqld.cnf

值为0.0.0.0时表示在所有服务器主机IPv4接口上接受TCP/IP连接。更多可选值及含义参照MySQL官方文档(文档地址)

上一篇下一篇

猜你喜欢

热点阅读