配置服务
- 在 mysql 路径下找到 my.ini 文件,如果没有可以在到其它配置好的 Mysql 环境中复制一份放入解压后的mysql文件夹;
- 将 basedir 改为 mysql 的实际路径,比如:
basedir=D:softwaresmysql - 将 datadir 改为 mysql 数据库的数据存放路径,一般是设置为 mysql 路径下的 data 文件夹,比如:
datadir=D:softwaresmysqldata(不要手动创建 data 文件夹) - 完成后以管理员身份运行 cmd 窗口,进入 mysql/bin 路径下,执行 mysqld --initialize 命令进行初始化,这一步会自动创建上一步所需的 data 目录;
- 运行 mysqld install 命令,将 mysql 注册到服务列表;
- 之后运行 net start mysql 指令启动Mysql。
配置用户
上面的步骤,虽然已经安装并启动了 Mysql ,但是还无法正常使用,需要继续进行下面的配置
- 运行 cmd 窗口,进入 mysql/bin 路径下(下面的操作都是在该路径下执行的)
- 输入指令连接本地 Mysql:mysql -u root -p
连接远程mysql:mysql -h 192.168.11.111 -u root -p - 此时密码是未知的,所以需要自己修改 root 用户的密码
如果输入错误的密码的话,会报错:Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES) - 以管理员角色开启 cmd,进入 mysql/bin 路径下
- 关闭服务:net stop mysql
- 跳过中间密码验证:mysqld --shared-memory --skip-grant-tables(之后会命令行会在下一行停止)
(centos的做法是,找到/etc/my.cnf ,在[mysqld]后添加skip-grant-tables,重启mysqld。在完成密码修改后,要记得删除这一行) - 开启另一个命令行窗口,输入 mysql ,进入 mysql 运行环境
- 将 root 用户的密码清空,update mysql.user set authentication_string='' where User = 'root';
- 关闭以上所有的 cmd 窗口
- 服务列表中开启 mysql 服务(或者执行 net start mysql 指令)
- 开启新的 cmd 窗口,执行登陆指令:mysql -u root -p
此时的密码为空字符串,所以要求输入密码的话就直接回车 - 此时已成功,直接进入了 mysql 环境
- 为 root 设置密码:alter user 'root'@'localhost' identified by 'root';
- 至此就完成了 Mysql 用户的配置
- 可以新打开一个 cmd 窗口,执行登陆指令:mysql -u root -p,然后输入设置的密码,即可成功登录 Mysql
配置远程用户
Navicat Premium 远程连接 Mysql 数据库出现报错:Host '' is not allowed to connect to this MySQL server,原因是该用户没有远程连接权限,此时需要配置适用于远程地址的用户
- 创建新用户
CREATE USER 'root'@'%' IDENTIFIED BY 'root'; # %表示所有服务器可以访问,也可以改成指定IP - 赋予权限
grant all privileges on *.* to 'root'@'%'; # .表示所有数据库的所有表,也可以改成类似 dbname.*,表示指定数据库的所有表
可能遇到的问题
启动服务报错:Found option without preceding group in config file
原因:mysql里面的配置文件my.ini文件格式是utf-8,只要把 my.ini 文件格式改为ANSI就可以了。
Navicat Premium 12连接MySQL数据库出现:Authentication plugin 'caching_sha2_password' cannot be loaded
解决方案:
- 管理员权限运行命令提示符,登陆MySql:mysql -u root -p
- 修改账户密码加密规则并更新用户密码
alter user 'root'@'localhost' identified BY 'password' password expire never; #修改加密规则 (可选)
alter user 'root'@'localhost' identified with mysql_native_password BY 'password'; #更新一下用户的密码,修改密码加密插件
- 刷新权限并重置密码:flush privileges; #刷新权限
- 再重置下密码:alter user 'root'@'localhost' identified by '111111';
- 再次打开Navicat Premium 12连接MySql数据库,就会发现可以连接成功了。