WSL+Docker安装MySql
直接在wsl安装
- 使用apt安装
- 启动:service mysql start
- 初始化:mysql_secure_installation
- 登陆:mysql -u root -p
- 配置允许远程以用户名和密码的方式连接
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
配置表名大小写不敏感:MySQL在Windows默认不敏感,在Linux则默认敏感
echo "lower_case_table_names = 1" >> /etc/mysql/mysql.conf.d/mysqld.cnf
/etc/init.d/mysql restart
使用Docker安装
dokcer版本的mysql默认可直接远程连接,无需再配置
mysql5安装
# 指定root密码、端口映射、存储映射
docker run --name mysql -v /opt/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -p 3307:3306 -d mysql:5.7
# 忽略表名大小写,进入容器内部执行
echo '
[mysqld]
lower_case_table_names = 1
'>> /etc/mysql/mysql.conf.d/mysqld.cnf
# 重启容器
docker restart mysql
mysql8安装
同时设置默认编码为utf-8
docker run --name mysql -v /opt/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql:8.0.28 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
# 若密码具有特殊字符,则需使用单引号包围,否则会被截断
docker run --name mysql -v /opt/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD='123!@#' -d mysql:8.0.28 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
备份数据库
同时可用于修改数据库名称,因为MySQL不提供直接修改的命令,只能创建新的数据库,并把原数据库备份到新数据库
进入容器内允许以下命令
# 将数据库导出到sql文件
mysqldump -u username -p -v olddatabase > olddbdump.sql
# 创建新的数据库
mysqladmin -u username -p create newdatabase
# 将数据导入到新数据库
mysql -u username -p newdatabase < olddbdump.sql
手动配置MySQL8 root远程连接
1. 登录到MySQL:
$ mysql -u root -p
2. 输入密码登录。
3. 使用以下命令更新root用户的访问权限:
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中,password为您创建的root用户的密码,用单引号括起来。
4. 使用下面的命令允许root用户从任何IP地址访问MySQL:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
注意,在安全环境中,不应该允许任何人从任何位置访问root用户。限制远程访问可以减少系统受到攻击的风险。
5. 最后,使用FLUSH PRIVILEGES命令刷新MySQL的权限表,使更改生效:
mysql>FLUSH PRIVILEGES;