初用mysql,正好赶上了 8.0 大版本的更新,据说效率是5.7版本的两倍,所以直接开始使用8.0版本。
直接官网下载社区版本:https://dev.mysql.com/downloads/mysql/
然后找解压版本安装教程:https://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html
本来简单的问题遇到了几个麻烦:
1.执行mysqld命令报缺少vcruntime140.dll
执行mysqld -install 安装服务时出了这个错误,这个是缺少vc++2015的运行环境,所以没有这个dll,直接网上搜索安装就可以,安装完直接过了
2.net start mysql无法启动
这个错误报的不明所以,就说无法启动,也没有详细信息,然后看网上资料别人让删掉data目录,然后执行mysqld --initialize,发现我的文件夹就没有data目录,所以直接执行,执行2完成后自动创建data目录及初始文件,然后再启动服务就可以了
3.root的默认密码没有
最后,连接数据库,使用 mysql -uroot -p 要求输入密码,试了很多次不好使,继续查,发现mysql 5.7以上和之前机制不一样了,会随机生成一个密码,找了很久终于找到windows版本的办法。
https://blog.csdn.net/zoe9698/article/details/79116506
4.项目代码用5.1的版本mysql,更换mysql 8.0以后连接出错了
首先修改了pom里的jar包引用,修改为8.0.11,然后重新编译打包项目,复制到服务器上
然后修改数据库连接的配置文件
驱动有变化,jdbc.driver=com.mysql.cj.jdbc.Driver,加了一个cj
然后链接字符串多了2个参数,?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
useSSL 和 serverTimezone
按要求修改完成后,运行成功
至此,服务器上 java环境、tomcat、mysql、redis 都安装完成,并且项目运行成功
5.远程连接mysql还是出错
回到本地开发环境,想远程连接一下服务器上的数据库,配置ip、端口、帐号密码后,连接失败
搜索了一下mysql外网链接的问题,发现root帐号默认只支持localhost连接,需要修改user表的host参数为%
1.以root登录到mysql: mysql -r root -p,输入密码
2.use mysql
3.update user set host='%' where user='root';
4.FLUSH RIVILEGES;
再次连接,成功
6.redis远程连接也出错了
在本地开发环境中,同时也配置是redis的外网连接,ip、端口号
但进入redis调用的页面中,提示错误,又搜索redis外网连接的问题,也需要修改配置文件
首先注释调 bind 127.0.0.1 这一行,然后修改 protected-mode no,完成
连接成功
7.root外网访问
如果没有"%"这个host值,就执行下面这两句:
mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> flush privileges;
8. 客户端连接caching-sha2-password问题
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
网友评论