在MySQL中,同名數據庫是可以存在的。如果在同一個 MySQL 實例中創建兩個同名的數據庫,那么這兩個數據庫的內容將分開存儲,并且互不影響。
例如,如果我們使用如下命令創建一個名為 test 的數據庫:
CREATE DATABASE test;
如果再次執行該命令,MySQL 將返回一個錯誤提示,因為同名數據庫已經存在:
ERROR 1007 (HY000): Can't create database 'test'; database exists
但是,如果我們在同一個 MySQL 實例中創建一個新的用戶 test,并授權該用戶訪問 test 數據庫,那么這個用戶將能夠訪問同名的數據庫,但實際上這兩個數據庫是獨立的。
#create user and grant access to database CREATE USER 'test'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost'; #connect to database mysql -u test -p #enter the password when prompted #check the databases that the user has access to SHOW DATABASES;
在這種情況下,用戶 test 可以訪問同名的數據庫,但實際上它們是不同的數據庫實體。