实验环境
虚拟机:Oracle VM VirtualBox 5.1.26
系统:linux
服务器:apache-tomcat-8.0.53
jdk:1.8
数据库:mysql 5.7
辅助连接工具:mRemoteNG 1.72
辅助文件传输工具:WinSCP 5.9.3
遇到的问题
1. linux获取系统ip(ifconfig -a)后没有inet一栏
虚拟机选择当前电脑正在使用的网络适配器,有线/无线。
2. windows下该版本mysql默认开机启动
若要修改,可在计算机右键>管理>服务与应用程序>服务>mysql右键属性自动/手动。
3. linux项目连接本地windows中数据库失败
关闭防火墙后,ip选择根据当前电脑所用的联网方式,无线选择无线局域网适配器,有线选择以太网适配器。
4. 项目能正常启动但是无法调用数据库某些数据
可能中文编码问题,试试在jdbc配置文件的url后加上
?useUnicode=true&characterEncoding=utf-8
linux是对大小写敏感,一直报错 找不到×××表,把mysql在 /etc/my.cnf 文件中添加一行以忽视大小写:
lower_case_table_names = 1
5. linux 中mysql命令行创建数据库失败
mysql创建库时可能名称含有某些特殊字符(如-号)无法直接添加,试试括上``(tab上边的键位),如:
create database `db-user`;
6. linux下mysql对密码复杂度有要求(含数字,小写字母,大些字母,特殊字符,总长度大于等于8位)
在/etc/my.cnf中的[mysqld]下添加入下代码以关闭密码的复杂度要求:
validate_password=off
7. linux下修改mysql密码失败:
进入数据库的mysql库后修改密码值
5.7以后版本:
update user set authentication_string =password('新密码p') where user = '用户名u';
5.7以前版本
update user set password =password('新密码p') where user = '用户名u';
然后
flush privileges;
8. mysql数据迁移报错
mysql5.7后timetamp类型字段不允许默认0000-00-00 00:00:00,可以在/etc/my.cnf中的[mysqld]下添加入下代码可以解决:
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启mysql
结尾
有点乱,遇到问题网上找的资料,防止忘记就记下了,忘记记录引文了,谢谢前辈先驱们的慷慨奉献,若涉嫌抄袭请告知。
部分引用
https://blog.youkuaiyun.com/qq_38727626/article/details/82597700
https://blog.youkuaiyun.com/u011897110/article/details/83343048
https://www.jb51.net/article/115341.htm
https://blog.youkuaiyun.com/guoxiaoweitaiyuan/article/details/89442822
https://www.youkuaiyun.com/gather_2f/MtTaIgxsMDY3My1ibG9n.html