.为了简单方便使用了ubantu系统apt-get 方式安装的Mysql。
1.Mysql的用户管理
创建用户使用
然后查看数据的用户:
其中user字段表示用户名,host表示可连接的ip,localhost指定只能本地连接,若要支持所有远程连接,需要先设置mysql的配置文件的bind的默认属性值从127.0.0.1 改为 0.0.0.0
这里要注意,如果要创建的用户支持远程所有的ip都连接,就在CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
命令的localhost将其替换成%,也可以替换成单独的某一个ip.如果用户已经添加进去了,但是又需要其支持远程连接,那我们可以使用另外的命令:
grant all privileges on dbName.tableName to "username"@'ip';
这条命令的含义是给与用户使用连接的ip在数据库的某个db某张表具有所有的权限,这里的dbName和tableName都可以是使用*.*来替代。表示所有的库和表,当然注意命令后记得刷新数据库,使用:flush privileges;
上面这些都是解决当时安装Mysql时root用户创建了database和表,结果创建的test用户无法看到,然后经历的解决办法。
2.springboot使用逆向工程连接数据库的报错
报错提示:The server time zone value 'PDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
通过这条命令发现time_zone使用的是system时间。然后我接着用select now();发现此时的系统时间跟当地的时间不一致,怀疑是时区问题,因为使用的是Ubantu系统,没有设置系统时区,导致客户端时间和服务器时间不一致。然后第一次使用了治标不治本的做法
set time_zone=SYSTEM;
set global time_zone='+8:00';
flush privileges;
使用此方法解决了当时Mybatis逆向工程的报错,但是同时,只要重启Mysql服务,该错还是会产生,所以我试着去修改一下系统的时区,就彻底解决了烦恼。
查看系统时间:
root@ubuntu:/# date -R
如果时区不一致,进行时区选择
root@ubuntu:/# tzselect
在这里我们选择亚洲 Asia,确认之后选择中国(China),最后选择北京(Beijing)
最后复制文件到/etc/localtime下
root@ubuntu:/# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
做完这些之后不代表此时数据库时间就更正了,但是我当时选择重启了mysql服务,然后正常了。这里我不了解是不时有可以不重启mysql的解决方案。