mysql -h localhost -u root -p
localhost:IP地址;
root:用戶名;
database:數據庫名(可以省略,如果有,跟在-p后面);
如果你發現這樣報mysql不是有效命令。那么有兩種解決方法:
我的電腦-->屬性-->高級-->環境變量-->系統變量-->配置一個Path變量,值為MySQL安裝文件夾里的bin目錄;
先用cd命令定位到MySQL安裝文件夾的根目錄,然后再輸入以上命令;
開始->所有程序->MySQL->MySQL Server 5.0->MySQL Command Line Client;
當命令正確執行后,會提示輸入密碼,登錄成功后的界面如上圖所示。
以上圖顯示出了歡迎信息,其中還有以下信息說明如下:
Commands end with; or g:
mysql命名行下的命令以分號(;)或"g"來結束,遇到這個結束符就開始執行命令;
Your MySQL connection id is 24 Server version:5.0.67-community-nt
id表示MySQL的數據庫連接次數,后面是社區版,版本號等信息;
Type help; or h for help
表示輸入help;或h可以看到幫助信息;
Type c to clear the buffer
遇到c就會清屏;
也可以在-p后直接輸入密碼,-p與密碼之間沒有空格。
MySQL Command Line Client:
MySQL的命令行客戶端;
MySQL Server Instance Config Wizard:
配置向導;
Suninventory Registration:
注冊網頁鏈接;
啟動MySQL Server Instance Config Wizard能夠重新配置MySQL,但是要小心操作(這個留到第三部分)。
手動更改配置
用戶可以通過修改MySQL配置文件的方式來進行配置。在配置之前需要對MySQL的文件有一定的了解。在MySQL Server 5.0目錄下,MySQL的數據文件安裝在MySQL Server 5.0data目錄下。
安裝根目錄中有4個文件夾和一些文件,這些目錄說明如下:
bin:
可執行文件,如mysql.exe、mysqld.exe等;
include:
頭文件,如decimal.h、errmsg.h等;
lib:
庫文件,分兩個文件夾,分別是opt和plugin;
share:
字符集、語言信息;
在根目錄下,還有幾個.ini后綴的文件。其中只有my.ini是正在使用的。
my.ini:MySQL數據庫使用的配置文件,修改該文件即可修改配置;
my-huge.ini:適合超大型數據庫的配置文件;
my-large-ini:適合大型數據庫的配置文件;
my-medium.ini:適合中型數據庫的配置文件;
my-small.ini:適合小型數據庫的配置文件;
my-template.ini:配置文件的模板;
my-innodb-heavy-4G.ini:該配置文件只對InnoDB存儲引擎有效,而且服務器的內存不能小于4G;
其中,my.ini的主要參數及說明如下:
client:客戶端參數
password:用戶的登錄密碼,密碼存在該文件中,登錄時可以不輸入;
port:MySQL數據庫端口,默認端口是3306;
2. mysql客戶端參數
default-character-set:客戶端默認字符集;如果希望支持中文,應該設為utf8或gbk,默認是latin1
3. mysqld服務器端參數
port:MySQL數據庫的端口,默認是3306;
basedir:MySQL的安裝路徑;
datadir:MySQL數據文件的存儲位置;
default-character-set:服務器端字符集;
default-storage-engine:默認存儲引擎;
sql-mode:SQL模式的參數,通過這個參數,可以設置檢驗SQL語句的嚴格程序;
max_connections:參數表示允許同時訪問MySQL服務器的最大連接數,有一個專為管理員保留;
query_cache_size:表示查詢時緩存的大小。緩存以前SELECT語句查詢過的信息;
table_cache:所有進程打開表的總數;
tmp_table_size:內存中臨時表的最大值;
thread_cache_size:保留客戶端線程的緩存大小;
myisam_max_sort_file_size:重建索引時,允許的最大臨時文件的大小,默認100G;
myisam_sort_buffer_size:重建索引時,最多能使用緩存的大小;
key_buffer_size:關鍵詞緩沖的大小,一般用于緩沖MyISM表的索引塊;
read_budder_size:MyiSAM全表掃描的緩沖大小;
read_rnd_buffer_size:排序好的數據存入的緩存區的大小;
sort_buffer_size:用于排序的緩存大小;
4. INNODB引擎參數
innodb_additional_mem_pool_size:附加的內存池大小;
innodb_flush_log_at_trx_commit:參數設置提交日志的時機(設置1、提交后寫到磁盤上);
innodb_log_buffer_size:存儲日志數據的緩沖區大小;
innodb_thread_concurrency:在InnoDB存儲引擎允許的線程最大數;
1. 文件介紹
bin:各種執行文件;
data:日志文件和數據庫文件;
Docs:版權信息、MySQL的更新日志和安裝信息;
Embedded:前入職服務器文件;
include:頭文件;
lib:庫文件;
mysql-test:測試有關的文件;
scripts:Perl語言編寫的實用工具腳本;
share:字符集和語言信息;
sql-bench:數據庫性能比較的信息和基準程序;
mysql文件夾下有多個ini文件,需要將其中一個復制到C:WINDOWS文JIANJIA下,并將其改名為my.ini。如果內存充裕,可以選擇大的,如my-larage.ini拷貝到c:WINDOWS,文件夾并改名為my.ini。
在C:WINDOWS文JIANJIA下打開my.ini文件,在[mysqld]這個組中加入如下兩條記錄:
除此之外,還要加入一個組和一條記錄:
組的名稱為WindowsMySQLServer,意思是Windows操作系統下的MySQL服務。Server參數表示MySQL服務端程序。"C:/mysql/bin/mysqld.exe"就是幅度段程序。
4. 設置MySQL服務
配置文件沒問題了,只需要將MySQL服務端程序添加到系統服務中。
在控制臺輸入如下命令并執行:
C:/mysql/bin/mysqld.exe -install
執行此命令后,會出現一個DOS窗口一閃而過。說明此命令已經執行成功,MySQL成功添加到系統服務。
環境變量,也需要像文章開篇那樣配置,才能快速啟動。
啟動和關閉mysql服務的命令如下:
net start mysql
net stop mysql
如果是免安裝的MySQL,先應該在DOS窗口執行"c:/mysql/bin/mysqld.exe--remove"命令(假設安裝目錄是c:/mysql);當此命令完成后,在刪除整個目錄,然后在刪除C:Windows目錄下的my.ini就徹底刪除MySQL免安裝版了。
MySQL用戶管理:MySQL分為普通用戶與root用戶。這兩種用戶的權限不一樣。
安裝MySQL時會自動安裝一個名為mysql的數據庫。mysql數據庫里面存儲的都是權限表。
1)User表
user表有39個字段。這些字段可以分為4類:
用戶列;
權限列;
安全列;
資源控制列;
2)用戶列
用戶列包括Host、User、Password,分別表示主機名、用戶名和密碼。登錄用的就是這個用戶名與密碼;
3)權限列
user表的權限列包括Select_priv、Insert_priv等以priv結尾的字段。
這些字段的值只有Y和N。Y表示該權限可以用到所有數據庫上;N表示該權限不能用到所有數據庫上;
通常,可以使用GRANT語句Wie用戶賦予一些權限,也可以通過Update語句更新user表的方式來設置權限;
不過,修改user表之后,一定要執行一下FLUSH PRIVILEGES,否則可能會出現如下錯誤:
Error (1133): Can’t find any matching row in the user table
Update修改權限:
UPDATE user SET Select_priv = N
WHERE Host = %
GRANT賦予權限
4)安全列
user表的安全列有4個字段:
ssl_type;
ssl_cipher;
x509_issuer;
x509_subject;
ssl用于加密;x509標準可以用來標識用戶。普通的發行版都沒有加密功能。可以使用SHOW VARIABLES LIKE have_openssl語句來查看是否具有ssl功能。如果取值為DISABLED,那么則沒有ssl加密功能。
5)資源控制列
user表的4個資源控制列是:
max_questions:每小時可以允許執行多少次查詢;
max_updates:每小時可以允許執行多少次更新;
max_connections:每小時可以建立多少連接;
max_user_connections:單個用戶可以同時具有的連接數。
默認值為0,表示無限制。
db表存儲了某個用戶對一個數據庫的權限。
host表中存儲了某個主機對數據庫的操作權限,配合db表對給定主機上數據庫級操作權限做更細致的控制;但是很少用,新版本已經取消了host表;
1)用戶列
db表的用戶列有3個字段:
Host:主機名;
Db:數據庫名;
User:用戶名;
2) 權限列
db表:
Create_routine_priv:是否具有創建存儲過程權限;
Alter_routine_priv:是否具有修改存儲過程權限;
user表中的權限是針對所有數據庫的,如果user表中的Select_priv字段取值為Y,那么該用戶可以查詢所有數據庫中的表;
如果為某個用戶值設置了查詢test表的權限,那么user表的Select_priv字段的取值為N。而這個SELECT權限則記錄在db表中。db表中的Select_priv字段的取值將會是Y。
用戶先根據user表的內容獲取權限,然后再根據db表的內容獲取權限。
3) tables_priv表和columns_priv表
tables_priv:可以對單個表進行權限設置:
tables_priv表包含8個字段:
Host:主機名;
DB:數據庫名;
User:用戶名;
Table_name:表名
Table_priv:對表進行操作的權限(Select,Insert,Update,Delete,Create,Drop,Grant,References,Index,Alter)
Column_priv:對表中的數據列進行操作的權限(Select,Insert,Update,Rederences);
Timestamp:修改權限的事件
Grantor:權限的設置者
columns_priv:
可以對單個數據列進行權限設置,有7個列,作用同上:
Host、Db、User、Table_name、Column_name、Column_priv、Timestamp。
MySQL權限分配是按照user表-> db表 -> table_priv表 -> columns_priv表的順序進行分配的。
在數據庫系統中,先判斷user表中的值是否為Y,如果user表中的值是Y,就不需要檢查后面的表。如果user表為N,則一次檢查后面的表。
4) procs_priv表
procs_priv表可以對存儲過程和存儲函數進行權限設置。
procs_priv表包含8個字段,分別是:
Host:主機名;
Db:數據庫名;
User:用戶名;
Routine_name:存儲過程或函數名稱;
Routine_type:類型(取值有:FUNCTION或PROCEDURE);
Proc_priv:擁有的權限(Execute:執行;Alter Routine:修改;Grant:權限賦予);
Timestamp:字段存儲更新的時間;
Grantor:字段設置者;
其中登錄方式非常簡單,在這個地址:
http://www.cnblogs.com/kissdodog/p/4154068.html
在MySQL數據庫中,建立用戶有3種方式:
使用CREATE USER語句來創建新的用戶;
直接在mysql.user表中INSERT用戶;
使用GRANT語句來新建用戶;
1) CREATE USER
使用CREATE USER語句創建用戶,必須要擁有CREATE USER權限。其格式如下:
CREATE USER user[IDENTIFIED BY [PASSWORD] password],
[user[IDENTIFIED BY [PASSWORD] password]]...
示例:
CREATE USER admin@% IDENTIFIED BY admin
2) 用INSERT語句新建普通用戶
可以使用INSERT語句直接將用戶的信息添加到mysql.user表。但必須擁有mysql.user表的INSERT權限。
示例:
INSERT INTO mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) VALUES(%,newuser1,PASSWORD(123456),,,)
執行INSERT之后,要使用命令:
FLUSH PRIVILEGES
命令來使用戶生效。
3)用GRANT語句來新建普通用戶
用GRANT來創建新的用戶時,能夠在創建用戶時為用戶授權。但需要擁有GRANT權限。
語法如下:
GRANT priv_type ON database.table
TO user[IDENTIFIED BY [PASSWORD] password]
[,user [IDENTIFIED BY [PASSWORD] password]...]
priv_type:參數表示新yoghurt的權限;
databse.table:參數表示新用戶的權限范圍;
user:參數新用戶的賬戶,由用戶名和主機構成;
IDENTIFIED BY關鍵字用來設置密碼;
password:新用戶密碼;
GRANT語句可以同時創建多個用戶。
GRANT SELECT ON *.* TO netUser@%
*.*與db.*的區別在于。*.*對所有數據庫生效,所以user表的SELECT會變為Y。而db.*user表為N,更改的是Db表。
2. 刪除普通用戶
1) DROP USER語句刪除普通用戶
需要擁有DROP USER權限。語法如下:
DROP USER user[,user]...
user是需要刪除的用戶,由用戶名(User)和主機名(Host)構成。
DROP USER newuser1@%
2) DELETE語句刪除普通用戶
可以使用DELETE語句直接將用戶的信息從mysql.user表中刪除。但必須擁有對mysql.user表的DELETE權限。
DELETE FROM mysql.user WHERE Host = % AND User = admin
刪除完成后,一樣要FLUSH PRIVILEGES才生效。
3. 修改密碼
1) 使用mysqladmin命令來修改root用戶的密碼
語法:
mysqladmin -u -username -p password "new_password"
新密碼(new_password)必須用括號括起來,單引號會報錯。
示例:
(注:這個待驗證,我怎么執行都不成功!)
2) 修改user表
UPDATE user表的passwor字段的值,也可以達到修改密碼的目的;
UPDATE user SET Password = PASSWORD(123) WHERE USER = myuser
FLUSH PRIVILEGES后生效。
3) 使用SET語句來修改密碼
使用root用戶登錄到MySQL服務器后,可以使用SET語句來修改密碼:
修改自己的密碼,不需要用戶名
SET PASSWORD = PASSWORD("123");
修改其他用戶密碼:
SET PASSWORD FOR myuser@%=PASSWORD("123456")
FOR 用戶名@主機名
4)GRANT語句來修改普通用戶的密碼
使用GRANT語句修改普通用戶的密碼,必須擁有GRANT權限。
GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] password]
示例:
GRANT SELECT ON *.* TO test3@% IDENTIFIED BY 123
5)忘記密碼的解決方案
如果root用戶密碼丟失了,會給用戶造成很大的麻煩。但是,可以通過某種特殊方法登錄到root用戶下,然后修改密碼。
使用--skip-grant-tables選項啟動MySQL服務
該選項將使MySQL服務器停止權限判斷,任何用戶都能夠訪問數據庫。
在Windows操作系統下,使用mysqlid或mysqlid-nt來啟動MySQL服務。
mysqld命令:
mysqld --skip-grant-tables
mysqld-nt命令:
mysqld-nt --skip-grant-tables
net start mysql命令:
net start mysql --skip-grant-tables
登錄root用戶,并且設置新密碼
mysql -u root
必須使用UPDATE語句更新mysql數據庫下的user表,而不能使用SET語句,因為--skip-grant-tables不能使用SET語句。
修改完密碼以后,FLUSH PRIVILEGES語句加載權限表,新密碼即生效。
2. 授權
GRANT語法如下:
GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY [PASSWORD] password]
[,user [IDENTIFIED BY [PASSWORD] password]]...
WITH with_option[with_option]
priv_type參數表示權限類型;
column_list:
參數表示權限作用于哪些列上,沒設置則位于整個表上;
user參數由用戶名和主機名構成;
形式是"username@hostname";
IDENTIFIED BY參數用于為用戶設置密碼;
password:用戶新密碼;
WITH關鍵字后面帶有一個或多個with_option參數。有5個選項:
GRANT OPTION:
被授權的用戶可以將這些權限賦予給別的用戶;
MAX_QUERIES_PER_HOUR count:
設置沒消失可以允許執行count次查詢;
MAX_UPDATES_PER_HOUR count:
設置每個消失可以允許執行count次更新;
MAX_CONNECTIONS_PER_HOUR count:
設置每小時可以建立count個連接;
MAX_USER_CONNECTIONS count:
設置單個用戶可以同時具有的count個連接數;
示例:
GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY [PASSWORD] password]
[,user [IDENTIFIED BY [PASSWORD] password]]...
WITH with_option[with_option]
3. 收回權限
收回權限,就是取消某個用戶的某些權限。MySQL中使用REVOKE關鍵字來為用戶設置權限。
語法如下:
GRANT SELECT,UPDATE ON *.*
TO myuser@%
WITH GRANT OPTION;
收回全部權限的REVOKE語句的基本語法如下:
REVOKE ALL PRIVILEGES,GRANT OPTION FROM user[,user]...
示例:回收用戶myuser的SELECT權限
REVOKE SELECT ON *.*FROM myuser@%
收回myuser的所有權限:
REVOKE ALL PRIVILEGES,GRANT OPTION FROM myuser@%
4. 查看權限
SHOW GRANTS語句用于查看權限。同時mysql數據庫下的user表中存儲著用戶的基本權限。
SELECT * FROM mysql.user
SHOW GRANTS
更多精彩干貨分享
點擊下方名片關注
IT那活兒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129762.html
摘要:處在局域網之內的,由于有局域網出入口的網絡設備的基本保護,相對于暴露在廣域網中要安全不少,主要威脅對象基本控制在了可以接入局域網的內部潛在威脅者,和極少數能夠突破最外圍防線局域網出入口的安全設備的入侵者。 前言 對于任何一個企業來說,其數據庫系統中所保存數據的安全性無疑是非常重要的,尤其是公司的有些商業數據,可能數據就是公司的根本。 失去了數據,可能就失去了一切 本章將針對mysql...
摘要:比如用戶表,第一行表示張三第二行表示李四,每一行都包含所有的列也就是字段。也是一種數據庫管理系統。但是,活躍的社區都給出了解決辦法,也在逐步成長。 本文主要介紹Mysql最基礎知識:Mysql基本概念。 1.1 數據庫基礎 1.1.1 簡介 數據庫,從字面意思來理解就是一個用來裝數據的容器。每天我們都在和數據庫打交道,比如你每天打開APP瀏覽新聞,瀏覽微博,這些都是間接的使用數據庫。 ...
摘要:二進制日志是記錄對數據發生或潛在發生更改的語句,并以二進制的形式保存。刪除配置文件刪除配置文件配置文件支持刪除操作。在配置文件列表頁選中需要刪除的配置文件,選中刪除即可完成刪除操作。UCloud MySQL云數據庫操作指南 基本操作 啟動MySQL實例 如果要啟動處于關閉狀態的MySQL實例,首先選擇需要啟動的MySQL實例,在列表右側點擊啟動按鈕,彈出的確認對話框選擇確定...
閱讀 1359·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1908·2023-01-11 13:20
閱讀 4166·2023-01-11 13:20
閱讀 2759·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3673·2023-01-11 13:20