Win64安装MySQL
Windows的玩法比较少,没有像MAC一样给你提供
mysqld-safe
等等各种的启动脚本,只有手动启动或者是以服务启动Mysql。
点击下载:MySQL5.5-8.0.7z (密码是11)
1.下载软件
这一步下载好软件就可以了,下载地址:
- MySQL :: Download MySQL Community Server
- https://downloads.mysql.com/archives/community/
记住一定要打开后面的Archives,里面的才有真正的压缩包下载(注意一下小版本,是8.0.34还是多少?两个不一样的话,整个bin文件夹里面的内容都是不一样的。)。
- https://downloads.mysql.com/archives/community/
2.修改MySQL配置
- 创建my.ini。是新建是新建!!!要自己新建。
- 配环境变量,很简单,配一下bin目录,能找到可执行命令就行。
3.初始化MySQL(注册成服务)
开启管理员CMD窗口
(1)切换到mysql的bin目录;
(2)执行mysqld --initialize命令,此时会生成一个新目录data,查看.err文件,打开可以看到root用户生成的随机密码;
# (1)使用管理员窗口CD到bin目录。执行完initialize之后会有默认的密码。默认密码放在点error文件里面。
cd 指定目录
mysqld –initialize-insecure
# (2)注册成服务。类似sc create 命令 需要管理员权限!(mysqld --install [new-db],new-db是名称。)
mysqld --install
net start mysql
# (3)进入客户端,修改登录密码为root。
mysql -u root -p
alter user 'root'@'localhost' identified with mysql_native_password by 'root';
命令 | 说明 |
---|---|
mysqld -remove | 移除自己的mysqld服务 |
net stop mysql | 停止mysql服务 |
sc delete xxx | 删除 |
- 初始化命令
mysqld –initialize-insecure
自动生成无密码的root用户;mysqld –initialize
自动生成带随机密码的root用户;
开启远程访问
当我们重新部署了一个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一定要填好,配置文件放在哪不重要。