您好,登錄后才能下訂單哦!
模擬生產環境中遇到的問題
一、問題描述:
1.Windows
2.mysql-5.7.18版本
配置mysql參數lowercasetablenames=0重啟后啟動不起來,只能退而求其次,配置 lowercasetablenames=2(存放時依據格式存放,讀取時統一按小寫讀)
3.建庫建表語句:
在一個test數據庫下,我建了一個小寫的表名haha和一個大寫的表名USER,語句如下。
(1)建庫test
create databse test;
(2)建表haha
DROP TABLE IF EXISTS `haha`;
CREATE TABLE `haha` (
`id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(3)建表USER
DROP TABLE IF EXISTS `USER`;
CREATE TABLE `USER` (
`ID` int(11) NOT NULL, `NAME` varchar(255) DEFAULT NULL, PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2個表結構建完之后開始創建用戶并對其進行分別授權。
create user 'test'@'localhost' IDENTIFIED by 'test@654321';
grant all on test.haha to test@'localhost';
grant all on test.USER to test@'localhost';
然后使用客戶端工具Navicat,用test這個用戶登錄,發現只顯示小寫的這個haha的表,大寫的USER表并未顯示。
二、嘗試過的解決辦法:
關于表的授權存儲在mysql.tablespriv表中,發現Tablename列存儲的user時小寫的,我手動修改成大寫的USER后保存,重啟mysql服務,依然不顯示大寫表名。
三、最后解決
去掉之前的配置lower的參數,直接按照Windows默認的即可。即使從Linux區分大小寫的環境中遷移到Windows中,數據庫的數據也能正常使用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。