文章目錄
1、添加用戶
1.1 登錄MYSQL:
@>mysql -u root -p
@>密碼
創建用戶:
格式:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username – 你將創建的用戶名說明:
host – 指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost, 如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%
例子:
CREATE USER 'javacui'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'javacui'@'172.20.0.0/255.255.0.0' IDENDIFIED BY '123456';
CREATE USER 'javacui'@'%' IDENTIFIED BY '123456';
CREATE USER 'javacui'@'%' IDENTIFIED BY '';
CREATE USER 'javacui'@'%';
password – 該用戶的登陸密碼,密碼可以爲空,如果爲空則該用戶可以不需要密碼登 陸服務器
授權(必須先創建用戶才能再授權,直接授權會報錯)
格式:GRANT privileges ON databasename.tablename TO 'username'@'host';
privileges – 用戶的操作權限,如SELECT , INSERT , UPDATE 等(詳細列表見該文最後面).如果要授予所 的權限則使用ALL說明:
databasename – 數據庫名
tablename - 表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用* 表示, 如*.*
舉例:
授權SELECT,INSERT
GRANT SELECT, INSERT ON test.user TO 'javacui'@'%';
授權查詢、插入、修改、刪除的權限
GRANT SELECT, INSERT, UPDATE, DELETE ON test.user TO 'javacui'@'%';
授權全部權限ALL
GRANT ALL ON *.* TO 'javacui'@'%';
FLUSH PRIVILEGES;
#注意:此處的"localhost",是指該用戶只能在本地登錄,不能在另外一臺機器上遠程登錄。
#如果想遠程登錄的話,將"localhost"改爲"%",
#表示在任何一臺電腦上都可以登錄。也可以指定某臺機器可以遠程登錄。
注意:用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
撤銷用戶權限
REVOKE privileges ON databasename.tablename FROM 'username'@'host';
例子說明: privilege, databasename, tablename – 同授權部分
REVOKE SELECT ON *.* FROM 'javacui'@'%';
2、修改密碼
方法一:
設置與更改用戶密碼
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是當前登陸用戶用
SET PASSWORD = PASSWORD("newpassword");
方法二:
用UPDATE直接編輯user表
mysql -u root -p 密碼
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
在丟失root密碼的時候,可以這樣
mysqld_safe --skip-grant-tables&
mysql -u root -p
mysql> use mysql;
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;
3、修改登錄的ip,讓那個ip可以登錄
方法一:
改表法。
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,從"localhost"改稱"%"
mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
方法二:
授權法。
例如,你想myuser使用mypassword從任何主機連接到mysql服務器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許用戶myuser從ip爲192.168.1.6的主機連接到mysql服務器,並使用mypassword作爲密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許用戶myuser從ip爲192.168.1.6的主機連接到mysql服務器的dk數據庫,並使用mypassword作爲密碼
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
修改登錄的ip更多請參考數據庫可以遠程連接或者說用IP地址可以訪問
4. 刪除用戶
@>mysql -u root -p
@>密碼
mysql>Delete FROM user Where User='test' and Host='localhost';
mysql>flush privileges;
mysql>drop database testDB; //刪除用戶的數據庫
刪除賬戶及權限:
>drop user 用戶名@'%';
>drop user 用戶名@ localhost;
5. 列出所有數據庫
mysql>show database;
6. 切換數據庫
mysql>use '數據庫名';
7. 列出所有表
mysql>show tables;
8. 顯示數據表結構
mysql>describe 表名;
9. 刪除數據庫和數據表
mysql>drop database 數據庫名;
mysql>drop table 數據表名;
10.表操作
建表
備註:操作之前使用“use <數據庫名>”應連接某個數據庫。
命令:create table <表名> (<字段名 1> <類型 1> [,..<字段名 n> <類型 n>]);
例子:
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default '0',
> degree double(16,2));
獲取表結構
命令: desc 表名,或者show columns from 表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
刪除表
命令:drop table <表名>
例如:刪除表名爲 MyClass 的表
mysql> drop table MyClass;
插入數據
命令:insert into <表名> [( <字段名 1>[,..<字段名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
查詢表中的數據
查詢所有行
mysql> select * from MyClass;
查詢前幾行數據
例如:查看錶 MyClass 中前 2 行數據
mysql> select * from MyClass order by id limit 0,2;
或者
mysql> select * from MyClass limit 0,2;
刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表 MyClass 中編號爲 1 的記錄
mysql> delete from MyClass where id=1;
修改表中數據
命令:update 表名 set 字段=新值,... where 條件
mysql> update MyClass set name='Mary' where id=1;
在表中增加字段
命令:alter table 表名 add 字段 類型 其他;
例如:在表 MyClass 中添加了一個字段 passtest,類型爲 int(4),默認值爲 0
mysql> alter table MyClass add passtest int(4) default '0'
更改表名
命令:rename table 原表名 to 新表名;
例如:在表 MyClass 名字更改爲 YouClass
mysql> rename table MyClass to YouClass;
更新字段內容
命令:update 表名 set 字段名 = 新內容
update 表名 set 字段名 = replace(字段名, '舊內容', '新內容');
例如:文章前面加入 4 個空格
update article set content=concat(' ', content);