在本地安装mysql8.0社区版之后,遇到了三个问题:
MySQL 8.0 Command Line Client
双击打开时闪退。- 使用Sqlyog连接数据库时提示2058或2059错误。
- Pycharm连接MySQL时报错,提示未设置数据库的时区或时区设置不正确。
现记录下这几个问题的解决办法。
问题1
MySQL 8.0 Command Line Client
和 MySQL 8.0 Command Line Client - Unicode
这两个文件是MySQL安装目录下的 mysql.exe
可执行文件加上不同的参数创建的快捷方式。
以 MySQL 8.0 Command Line Client
这个快捷方式为例,它其实等价于以下命令:
"D:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" "--defaults-file=D:\Program Files\MySQL\MySQL Server 8.0\my.ini" "-uroot" "-p"
其中 defaults-file
参数用于指定MySQL的配置文件的路径。由于 D:\Program Files\MySQL\MySQL Server 8.0\my.ini
这个路径指向的配置文件并不存在,而真正的配置文件是在 D:\ProgramData\MySQL\MySQL Server 8.0\my.ini
这个路径下,所以只要将该快捷方式中用于指定配置文件的路径修改为MySQL配置文件所在的实际路径即可,即:
"D:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" "--defaults-file=D:\ProgramData\MySQL\MySQL Server 8.0\my.ini" "-uroot" "-p"
问题2
产生这个问题的原因是MySQL8.0中,连接数据库时使用的默认的认证插件是 caching_sha2_password
,而Sqlyog并不支持这种方式,所以,只要将登录用户的密码的加密方式更改为 mysql_native_password
即可。命令如下:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
FLUSH PRIVILEGES;
其中,第一条命令的作用是将用户root的密码更改为 new_password
,并将加密方式更改为 mysql_native_password
。
问题3
产生这个问题的原因是安装MySQL时未设置数据库的时区。只要设置下数据库的时区即可。
进入MySQL的命令行并登录,使用如下命令设置时区:
set global time_zone='+8:00';
这样修改只能临时生效,如果要永久生效,可以通过修改mysql守护进程的配置文件 my.ini
来实现,方法是在 mysqld
部分添加如下内容:
default-time_zone = '+8:00'
其中,具体的时区可以根据需要设定。