ngip 上装了mysql 5.5, testip上装了mysql 5.7.
testip作为集群,打算直接使用上面的mysql服务。
1. windows服务器通过Navicat prenium 连接上局域网地址
2. 执行sql脚本,报错表名没找到,于是sql文件中insert语句全部使用大写的表名(notepad++批量替换)。
3. sql文件被更新了,我有需要执行新的sql文件覆盖老的。
4. 懒得又拷贝文件了,于是testIP上直接运行 mysql -u admin , 登陆后 use mcdb3.0 , 最后 执行 source /home/../dict.sql 。
5. 然后连接数据库,结果报错,因为数据库版本过高,java的mysql驱动版本过低。这样要继续使用,就得更新docker 镜像里的 jar包了。嫌太麻烦了!
6. 于是改用ngip上的数据库。mysql -h 172.17.0.3 -P 3306 (因为本地的my.cnf在client字段中使用了port=9901,所以连接别的数据库的别的端口必须明确指定端口). 运行 sql 脚本,
然而,由于 ngip 上的mysql配置了 lower_case_table_names=1 ,sql报错,找不到表名。
7. 于是 sed -i 's/tab_dictionary/TAB_DICTIONARY/g' tab_dictionary_20170721.sql
再次运行sql,执行成功!
本来还想着 vim 怎么实现批量修改大小写呢,结果发现 sed 才是最方便的!