记录-MySQL公共环境准备
2024/9/25大约 2 分钟后端MySQL
开启远程访问
当我们重新部署了一个MySQL服务后,发现在局域网内进行合作开发时却无法连接到指定数据库,这时候简单配置就可以解决连接问题:
1.三句话解决
USE mysql;
CREATE USER 'root'@'%' IDENTIFIED BY 'ROOT';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# 说明:
# 创建一个新的数据库用户。在这里,它创建了一个用户名为 "root" 的用户,允许从任何主机 '%' 连接,并且设置了密码为 'ROOT'。
# 授予了用户 'root'@'%' 对所有数据库和所有表的所有权限(管理员级别)
2.检查效果
# 最后到user表check一下
SELECT User, Host FROM user;
mysql> SELECT User, Host FROM user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
相关问题:https://stackoverflow.com/questions/50177216/how-to-grant-all-privileges-to-root-user-in-mysql-8-0
忘记MySQL密码
处理方法如下
- 窗口1:
- 管理员打开cmd窗口输入命令:net stop mysql
- 切到MySQL的bin目录
- MySQL 8.0.x 版本推荐使用:mysqld --console --skip-grant-tables --shared-memory
- 低版本MySQL数据库:
- mysqld --skip-grant-tables
- mysqld -nt --skip-grant-tables
- 窗口2:
- flush privileges;
- set password for root@localhost='root':
[骚操作]同一台电脑,配置多个MySQL服务
核心诀窍就是同一个版本用同样的bin, Bat脚本里面写启动服务是用Bin里面的启动脚本启动(以达到共用脚本的目的),它的配置文件可以指向特定的配置文件,又通过特定的配置文件指向特定的data,从而达成隔离data文件的目的。
最新推荐
强烈推荐使用docker来构建不同的环境,比下面的方式更加灵活
1.Bat脚本
start D:\env\mysql_bin_8.0.35\mysqld.exe --defaults-file="D:\env\mysql_service1_data\my.ini" --console
2.mysql配置文件(.ini)
[mysqld]
skip-log-bin
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\env\mysql_service1_data
#默认时区为东八区
default-time_zone = '+8:00'
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=caching_sha2_password
# 信任目录,表示导出文件可以不仅仅导出到data文件夹中
secure_file_priv=''
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
- 注意这个BaseDir一定要填好,配置文件放在哪不重要。
