my.ini 内容如下:
[mysqld]
character_set_server=utf8
port = 3306
basedir=D:\\Program Files (x86)\\MySQL\\MySQL Server 5.7
#datadir=D:\ProgramData\MySQL\MySQL Server 5.7\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
遇到问题:mysql 5.7以后默认密码随机生产,需要用到强制改root密码。
1,运行cmd,
2,找到D:\Program Files (x86)\MySQL\MySQL Server 5.7\bin
3,运行:mysqld -nt --skip-grant-tables 该命令通过跳过权限安全检查,
4,新开一个cmd窗口,原来的别关。继续找到:D:\Program Files (x86)\MySQL\MySQL Server 5.7\bin
输入命令:mysql -uroot -p
出现:Enter password:
直接回车,不输密码 (跳过权限安全检查)
5,mysq5.7修改密码
update mysql.user set authentication_string=PASSWORD('root') where user='root';
6,但是Navicat不行;报错:1862 - Your password has expired. To log in you must change it using a client that supports expired passwords.
解决办法:运行>mysql -uroot -proot命令行中可以登录进去,
select * from mysql.users
会有如下信息:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
解决:mysql> SET PASSWORD = PASSWORD('root');
然后再Navicat就登录进去了。