ubuntu22安装mysql8并远程访问
最近重新给一台虚拟机配置环境,发现好久没碰mysql,连安装、远程连接都出问题,故有此文
Ubuntu22.04
mysql8.0.33
f**k ya mysql8
安装
apt yes!!!
本来尝试去官网寻找文档,但发现并不友好,遂直接梭哈apt
1
2
3
4
5
6 //更新apt缓存
sudo apt update
//安装
sudo apt install mysql-server
//查询版本验证是否安装成功
mysql --version
配置密码
默认会有一个没有密码只能本地
root
访问的账户,即直接sudo mysql
就可进入mysql界面,这意味着您无法通过提供密码来以root用户连接到MySQL服务器。但这并不符合直觉,尤其是当你需要远程访问root的时候。
对此有两个方法:
第一个是将身份验证方法从
auth_socket
更改为mysql_native_password
。您可以通过运行ALTER USER SQL语句命令来做到这一点。1
2ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;因为 MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具貌似还只支持旧的加密方式。故此处改为
mysql_native_password
亦可解决部分数据库工具连接密码错误的问题。第二个选项是创建一个新的专用管理用户,该用户可以访问所有数据库。
远程访问
编辑配置文件
1 | sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf |
将[mysqld]
的bind-address
值(默认127.0.0.1,即本机)修改为0.0.0.0,意为接收所有ip的访问
当然你也选择你想使用的某个ip
随后重新启动mysql进程
1 | sudo systemctl restart mysql |
授权 root 用户的所有权限并设置远程访问
1 | //表示所有权限,% 表示通配所有 host,可以访问远程。 |
如果出现
执行
1 update user set host='%' where user='root';再执行两次
1 GRANT ALL ON *.* TO 'root'@'%';刷新权限
flush privileges;
开放防火墙端口
1 | sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent 设置防火墙开放3306端口 |
此时即可远程访问数据库
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ashinnotfound📑!
评论