16.06.06
昨晚租赁了一台阿里云服务器,部署了个项目上去,在这个过程中,mysql 方面碰到两个问题。
1. 远程连接 Mysql 链接失败,在linux 上测试是连接正常的,定位问题为:mysql 未授权远程连接。操作如下:
-- 在linux 端登陆 mysql 后进行授权-- 授权任何主机访问任何数据库的权限GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;-- 授予 任何主机都可以访问 mysql 数据库的权限,其中 mysqluser 为账号,password 为mysql 密码GRANT ALL PRIVILEGES ON *.* TO 'mysqluser'@'%'IDENTIFIED BY 'password' WITH GRANT OPTION; -- 授予 192.168.1.1 这台机器可以访问 mysql 数据库的权限,其中 mysqluser 为账号,password 为mysql 密码GRANT ALL PRIVILEGES ON *.* TO 'mysqluser'@'192.168.1.1'IDENTIFIED BY 'password' WITH GRANT OPTION; -- 最后别忘记要 FLUSH PRIVILEGES 刷新下 mysql 的权限FLUSH PRIVILEGES;
2. 在项目启动后,出现mysql 访问表(大写表名)的时候,有提示表不存在的异常,经过确认,数据库表是存在的,只不过表名是小写的,定位问题:mysql 大小写设置问题,经过查验,linux 下的mysql 大小写情况如下:
1、数据库名与表名是严格区分大小写的2、表的别名是严格区分大小写的3、列名与列的别名在所有的情况下均是忽略大小写的4、字段内容默认情况下是大小写不敏感的
目前碰到的问题主要是表名的大小写敏感,那么更改配置的方案如下:
-- 1. 查看当前设置下的大小写设置状态,在登陆mysql的情况下,用命令行方式查看, 1 代表大小写不敏感, 0 代表敏感show variables like '%lower_case_table_names%';-- 2. 更改 mysql 配置文件,一般在 /etc/my.cnf 添加以下语句lower_case_table_names=1-- 3. 重启 mysql 使配置更改生效/usr/local/mysql/bin/mysqld restart
待续...