WSL+Docker安装MySql

直接在wsl安装

  1. 使用apt安装
  2. 启动:service mysql start
  3. 初始化:mysql_secure_installation
  4. 登陆:mysql -u root -p
  5. 配置允许远程以用户名和密码的方式连接
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;
posted @ 2020-08-19 17:57  woncode  阅读(1935)  评论(0编辑  收藏  举报