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官方文档如下图(文档地址)
在执行授权命令时可能遇到这个错误(如果有幸读者不是我自己,你可能不会遇到这个问题)
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官方文档(文档地址)
网友评论