当前时间2023.08.13
,Windows11中默认的WSL版本已经是2了,在WSL2中默认的Ubuntu版本已经是22.04,而Ubuntu22.04中默认的Mysql版本已经是8.*。
Wsl 2 中安装mysql
WSL2中安装Mysql的方法参考自微软官方文档【开始使用适用于 Linux 的 Windows 子系统上的数据库】,可放心食用。
若要在 WSL 上运行的 Linux 分发版上安装 MySQL,只需按照 MySQL 文档中的在 Linux 上安装 MySQL 说明进行操作。可能需要首先在配置文件中wsl.conf
启用系统支持。
使用 Ubuntu 分发的示例:
- 打开 Ubuntu 命令行并更新可用的包:
sudo apt update
- 更新该包后,使用以下命令安装 MySQL:
sudo apt install mysql-server
- 确认安装并获取版本号:
mysql --version
- 启动 MySQL 服务器/检查状态:
systemctl status mysql
- 若要打开 MySQL 提示符,请输入:
sudo mysql
- 若要查看可用的数据库,请在 MySQL 提示符中输入:
SHOW DATABASES;
- 若要创建新数据库,请输入:
CREATE DATABASE database_name;
- 若要删除数据库,请输入:
DROP DATABASE database_name;
安装Pycharm插件
在社区版的Pycharm中,默认是没有DATABASE标签的,需要使用第三方插件,首先是插件的安装
ctrl + alt + s
打开设置面板- 在
Plugins
中搜索database
,选择第一个安装。
设置mysql
Wsl下的Mysql安装默认是没有密码的直接使用sudo mysql
就能登陆。
- 编辑配置文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
,注释掉31和32两行。
31 # bind-address = 127.0.0.1
32 # mysqlx-bind-address = 127.0.0.1
注意:
- 是
mysqld.cnf
,不是mysql.cnf
,注意名称;- 是注释掉这两行,而不是解注释!
- 登录MySQL,直接执行
sudo mysql
,执行以下命令,修改root用户的host值。
# 使用mysql 数据库
mysql > use mysql;
# 特定用户的host 修改
mysql > update user set host='%' where user='root';
# 指定用户的授权
mysql > grant all privileges on test.* to root@'%'
- 添加用于远程访问的用户“test”。
# root用户没有SYSTEM_USER权限,需要先赋权
grant system_user on *.* to 'root';
# mysql 8.0 以后需要用如下命令开启远程服务,其中添加了 用户名/密码:test/123456 的用户
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'test'@'%';
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
执行完以上代码后,重启mysql服务service mysql restart
。
远程访问
具体操作如下图所示:
(文字有点跑偏,凑合一下)
参考资料
- 在windows下远程调用、连接(navicat)wsl2中 mysql 8.* 的详细步骤
- 解决mysql8 提示 ERROR 1410 (42000): You are not allowed to create a user with GRANT
- 开始使用适用于 Linux 的 Windows 子系统上的数据库