本文目錄一覽:
- 1、mysql 實例是什麼意思?
- 2、mysql的實例名怎麼查詢
- 3、MySQL中如何修改用戶各種信息
- 4、什麼是mysql多實例,如何配置mysql多實例
- 5、mysql 如何在用戶下建表,在數據庫實例中可以建表,但是我在自己建的用戶下卻看不到。我以前使用oracle。
- 6、如何創建一個mysql實例
mysql 實例是什麼意思?
MySQL實例,實際上就是mysql.exe進程!啟動MySQL服務後,就會產生mysql.exe進程!
mysql的實例名怎麼查詢
方法有很多種,一般用system用戶登錄。
方法一:
select name from v$database;
結果:
方法二:
select instance_name from v$instance;
結果:
MySQL中如何修改用戶各種信息
在MySQL中修改用戶的語法如下:
看了這麼一大坨東西,感覺啥也沒有告訴我,一臉懵逼。下面我們一起來解讀一下具體的每一個選項的含義。
對於這個大家應該有所了解。
首先它是被中括號包裹起來的,表示是可選的不是必須的,也就是說在我們的 alter user 語句中,這個 IF EXISTS 可以不出現不是必須要寫的。但是為什麼還要有這個呢,這個選項出現的目的是為了讓你在執行一個 alter user 語句的時候,如果語句中指定的數據庫用戶不存在(或者你寫用戶名稱的是寫錯了),而不至於出現一個錯誤的信息,如果指定了 IF EXISTS 這個詞,他就會以一個警告的信息提示你而不是直接給你一個錯誤信息。
更直白一下就是:如果你的 alter user 的語句中指定的用戶確實存在,那麼就執行你的語句,如果不存在呢,就不執行你的語句,跳過這個 alter user 的指令。看示例:
在上面的例子中,第一個修改用戶的語句,沒有使用 if exists 關鍵詞直接修改了一個不存在的用戶的信息,結果直接出現了錯誤信息,接着我們使用了 if exists 關鍵詞,結果SQL語句執行成功,只是出現了一個 warning 警告,然後我們通過 show warnings 命令查看警告信息的內容,提示我們用戶 ‘zhangsanfeng’@’%’ 不存在。這就是 if exists 關鍵詞的存在的意義。
當我們修改一個用戶的信息的時候,我們需要指定用戶的名稱。這個名稱,不僅僅使我們平時登錄數據庫的時候,輸入的用戶的名字,還有一個隱含的部分就是用戶登錄的 host 網段,這個網段表示只允許該用戶通過這個網段登錄,如果用戶不在這個定義的網段內,即便是用戶名和密碼正確,也不能爭取的登錄。
下面的創建用戶是兩個不同的用戶。
上面的兩個用戶中,分別表示如下:
當然,我們可以使用模糊匹配的方式來限定用戶登錄的網段,比如我們創建下面第一個用戶表示只要這個用戶登錄的時候,使用的主機的IP地址是在 10.10.0.0~10.10.255.255 這個網段質檢的任何一個IP地址都可以登錄。
特殊的網段 localhost 。如果我們創建如下的用戶,則表示該用戶只能在 MySQL 數據庫所在的服務器本機上登錄。
還有另外一個特殊的網段 % 。它表示用戶可以通過任何一個IP地址來登錄,不對用戶登錄的主機所在的網段做任何限制。如下用戶就是不對它登錄的主機IP地址做任何限制。
auth_option 選項的含義表示指定用戶登錄數據庫的時候使用的驗證插件和密碼。它的選項有如下幾種,下面我們分別展開分析一下各個選項的使用場景和示例。
如果在 IDENTIFIED 關鍵字後面沒有使用 WITH 關鍵字指定使用的密碼插件名稱,則會使用 MySQL 默認的密碼插件。對於 MySQL 默認的密碼插件是什麼,可以使用下面的命令進行查看:
通過上面的輸出,我們可以看出默認的密碼插件採用的是 mysql_native_password 插件,參數 default_authentication_plugin 的值是可以在 MySQL 的配置文件 my.cnf 中指定的,它可以有以下兩種取值:
MySQL 的配置文件 my.cnf 中配置默認的密碼認證插件的方式如下:
如果我們要修改某一個用戶的密碼認證插件,就可以使用到 IDENTIFIED WITH auth_plugin 這個語句了。如果一個用戶它的密碼認證插件使用的是默認的 mysql_native_password ,我們想把它的密碼認證插件修改為 sha256_password ,此時我們就可以使用下面的命令來修改:
執行完成上述命令後, xyz 這個用戶的密碼就會設置為空,並更新它的密碼為已經過期,同時更新了它的密碼認證插件為 sha256_password ,結果如下所示:
更改用戶的密碼認知方式之後,當 xyz 再次嘗試登錄 MySQL 數據庫的時候,輸入空密碼登錄成功後,會要求其修改一下自己的密碼,然後才可以執行其他SQL語句的操作,這個要求和我們剛安裝 MySQL 數據庫後,第一次使用 root 登錄的時候要求修改 root 的密碼是一樣的。下面是修改完成用戶 xyz 的密碼認證插件之後,嘗試使用空密碼登錄後的操作示例:
指定用戶的密碼認證插件,並設置密碼。
當我們想給用戶指定密碼的認證插件,並且想為其設置密碼的時候,可以使用這個命令,示例如下:
這樣用戶 xyz 的密碼認證方式修改為了 mysql_native_password ,並且修改它的密碼為 xyz 。需要我們主要的是 by 關鍵字後面跟的是密碼的明文,也就是我們嘗試登錄的時候,輸入的密碼的值。
指定用戶的密碼認證插件,並設置密碼。
當我們想給用戶指定密碼的認證插件,並且想為其設置密碼的時候,可以使用這個命令,示例如下:
這樣用戶 xyz 的密碼認證方式修改為了 mysql_native_password ,並且修改它的密碼為 xyz 。需要我們主要的是 as 關鍵字後面跟的是加密後的密碼,而不是我們的明文的密碼。如果我們想知道得到一個加密後的密碼,則可以使用下面 password() 函數來得到加密後的密碼。
這裡主要是指定用戶在連接到MySQL數據庫的時候,是否需要使用加密的方式,如果使用加密的方式,則需要啟用SSL加密協議,同時也需要對MySQL進行證書的配置。
考慮到性能的問題,使用TLS加密的方式連接MySQL數據庫會對MySQL數據庫的性能有一定的影響。非必要情況下,一般不建議啟用TLS加密連接到數據庫,因為大家的MySQL數據庫一般都是針對內網開放的。所以,啟用TLS加密協議連接沒有必要。
resource_option 選項中,主要是為每一個用戶設置它所能使用到資源,做資源的使用限制。示例如下:
上面四個參數的值如果為 0 ,則表示對應的資源限制不做任何限制。
password_option 選項用來配置用戶的密碼,指定其密碼的效期。下面看幾個示例:
對於MySQL系統默認的有效期是多少,可以通過如下命令查看,下面的值為 0 表示密碼有效期為永久有效。
lock_option 選擇是用來鎖定和解鎖用戶的。示例如下:
什麼是mysql多實例,如何配置mysql多實例
mysql的多實例有兩種方式可以實現,兩種方式各有利弊。第一種是使用多個配置文件啟動不同的進程來實現多實例,這種方式的優勢邏輯簡單,配置簡單,缺點是管理起來不太方便。第二種是通過官方自帶的mysqld_multi使用單獨的配置文件來實現多實例,這種方式定製每個實例的配置不太方面,優點是管理起來很方便,集中管理。
mysql 如何在用戶下建表,在數據庫實例中可以建表,但是我在自己建的用戶下卻看不到。我以前使用oracle。
MySQL 的 體系結構 與 Oracle 不一樣
Oracle , 是一個 數據庫, 一套 服務。 不同的用戶, 有 不同的 方案。
也就是 假如你的數據庫 有 2個 用戶 A, B 他們都創建了一個 test 表
那麼
可以通過 SELECT * FROM A.test 和 SELECT * FROM B.test 來 訪問這 些表。
MySQL , 是 一套 服務下面, 可以創建多個數據庫。
MySQL 下面, 通過
CREATE DATABASE 數據庫名;
來創建數據庫
並使用
USE 數據庫名;
來在不同的數據庫之間切換。
但是 用戶 和 數據庫 不直接關聯。
也就是你的 MySQL 服務裡面, 可以有 2個 數據庫 A, B。 下面都有 test 表。
那麼
可以通過 SELECT * FROM A.test 和 SELECT * FROM B.test 來 訪問這 些表。
假如 登陸進去了,但是在實例上建表的時候提示我不可以建表
有可能是 你還沒有 選擇數據庫
或者是 你沒有權限。
如何創建一個mysql實例
mysql與ORACLE不同,沒有多bai個實例這種說法。
MYSQL服務進程可以同時du服務多個DATABASE,而zhi不象ORACLE,一個實例對應一dao個DATABASE。
你的意思是再啟動一個MYSQL進程嗎?這也是可以的,在啟動命令行中修改參數。也可以在啟動配置文件my.cnf中修改。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256783.html