登錄:
mysql -h 服務(wù)器地址 -u 用戶名 -p 密碼
-h后面的服務(wù)器地址如果是遠(yuǎn)程的服務(wù)器,那么就要加上相應(yīng)的IP地址。而本機(jī)地址
作為服務(wù)器的話,只要加localhost即可,這和127.0.0.1是相同的意思。
注意:
主機(jī)必須要有登錄mysql數(shù)據(jù)庫的權(quán)限才可以登錄!(換句話說,數(shù)據(jù)庫服務(wù)器可以禁止某些IP登錄,個(gè)人猜測)
\c這個(gè)命令可以取消本行命令
exit退出當(dāng)前客戶端
常用命令:
\h? 查看幫助信息
\s? 查看系統(tǒng)信息
show databases;? 查看已經(jīng)創(chuàng)建好的數(shù)據(jù)庫
create database [if not exists] 數(shù)據(jù)庫名稱? ? ? 創(chuàng)建一個(gè)指定名稱的數(shù)據(jù)庫
drop database [if exists] 數(shù)據(jù)庫名稱? ? 刪除一個(gè)指定名稱的數(shù)據(jù)庫
use 數(shù)據(jù)庫名稱? ? ? 使用某個(gè)指定的數(shù)據(jù)庫
數(shù)據(jù)庫建立成功后,在服務(wù)器的數(shù)據(jù)庫data文件夾類就會(huì)添加對應(yīng)的數(shù)據(jù)庫名稱文件夾
前提是進(jìn)入某個(gè)指定的存在的數(shù)據(jù)庫:
create table [if not exists] 表名稱(
……
);? ? ? 創(chuàng)建一個(gè)數(shù)據(jù)表(里面的省略號(hào)表示數(shù)據(jù)類型)
drop table [if exists] 表名稱? ? ? 刪除一個(gè)指定名稱的表
alter table 表名稱 相關(guān)操作? ? 修改表的格式數(shù)據(jù)內(nèi)容等等
相關(guān)操作比如:
add 增加
drop 刪除
change 修改字段名,屬性
modify 修改屬性
完整的創(chuàng)建數(shù)據(jù)表的例子:
create table if not exists user(
id int,
username varchar(30),
age tinyint,
sex tinyint(1));
注意:這里全是括號(hào)!沒有尖角符號(hào)!讓我掉進(jìn)大坑了!
另外,不能和mysql中的關(guān)鍵字起名字沖突!
desc 表名稱? ? 查看數(shù)據(jù)表格式信息內(nèi)容
創(chuàng)建新用戶并授權(quán):
grant 權(quán)限 on 數(shù)據(jù)庫.數(shù)據(jù)表 to 用戶名@登錄主機(jī) identified by 密碼
舉例說明:
grant select,insert,update,delete on *.* to whl@"%" identified by "whl";
解析:將所有數(shù)據(jù)庫中所有數(shù)據(jù)表的查詢、插入、更新、刪除的權(quán)限給在任意主機(jī)上進(jìn)行登錄的whl用戶,且用戶的密碼為whl
另一個(gè)例子:
grant select,insert,update,delete on *.* to user1@"%" identified by "user123456";
解析:將所有數(shù)據(jù)庫中所有數(shù)據(jù)表的查詢、插入、更新、刪除權(quán)限給可以在任意主機(jī)登錄的user1用戶,user1用戶的登錄密碼是user123456
無法在本機(jī)登錄的原因是:得到權(quán)限的用戶即使擁有可以在所有主機(jī)登錄的權(quán)限,但是沒有在localhost登錄的權(quán)限,mysql中,localhost的登錄需要使用socket的方式,而其他的登錄則是用-h+主機(jī)地址的方式。