一、鏈接數據庫的格式mysql
mysql -h IP -u用戶名 -p密碼;
1.1鏈接遠程數據庫:sql
mysql -h 192.168.1.214 -uroot -p123456
查看數據庫:數據庫
show databases;
查看數據庫中的用戶安全
user mysql; select user from user;
更改本地root用戶密碼:bash
### 格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼 mysqladmin -uroot -p123456 password lilaizhen
注意:新安裝的mysql數據庫,因爲開始時root沒有密碼,因此在第一次修改root用戶密碼時,-p舊密碼一項就能夠省略。以下:服務器
mysqladmin -uroot password 123456
更改普通用戶密碼:ide
update user set password=PASSWORD(‘123456′) where user=’用戶名'; FLUSH PRIVILEGES;–當即生效,不須要重啓
建立數據庫:工具
create database ttest1;
此時可在OS上查看已經建立的數據庫,以下:code
ps aux |grep mysqld 查看mysql的運行所在的位置,以及數據文件存放位置 ls /usr/local/mysql/data
刪除數據庫:索引
drop database test1;
此時會同時會刪除OS上的數據庫文件夾
建立數據庫的表:
create table testtable(id int(4));
查看數據庫的表:
show tables;
顯示數據庫表的結構:
describe testtable;
向表中插入數據:
insert into testtable values(1);
刪除插入的數據
delete from testtable where id=’1′;
清空表
delete from testtable;
刪除表
drop table testtable;
建立用戶:
create user 'ailanni'@'%' identified by 'ailanni';
刪除用戶:
drop user 用戶名;
用戶受權
grant privileges on database.table to user@ip identified by 'password';
注意該命令能夠同時建立用戶並受權,也就是說咱們不須要先建立用戶。
privileges表示權限。
grant all on test.* to 'ailanni'@'%' identified by 'ailanni'; FLUSH PRIVILEGES;
privileges權限分類:
all: 容許作任何事(和root同樣)。這個平時使用的比較多,實際生產環境中就是一個用戶對一個數據庫。
usage: 只容許登陸–其它什麼也不容許作。
alter: 修改已存在的數據表(例如增長/刪除列)和索引。
create: 創建新的數據庫或數據表。
delete: 刪除表的記錄。
drop: 刪除數據表或數據庫。
index: 創建或刪除索引。
insert: 增長表的記錄。
select: 顯示/搜索表的記錄。
update: 修改表中已存在的記錄。
replication slave: 權限應授予從服務器所使用的將當前服務器鏈接爲主服務器的帳戶。沒有這個權限,從服務器不能發出對主服務器上的數據庫所發出的更新請求。這個權限在配置mysql主從時,會使用到。
注意在給用戶受權時,必定不要這樣受權:
grant all on *.* to ‘ailanni’@’%’ identified by ‘ailanni';
由於這樣就至關於把ailanni這個用戶授予最高權限,具備管理全部數據庫的能力,至關於root用戶的權限。這樣是很是不安全的。
查看用戶權限:
show grants for ‘ailanni’@’%';
用戶權限刪除:
revoke privilege on database.table from user@ip identified by 'password';
例子:
revoke all on ailanni.* from ‘ailanni’@’%’ identified by ‘ailanni';
數據庫備份:
格式:mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql;
數據庫恢復:
mysql -hhostname -uusername -ppassword databasename< backupfile.sql;
有關數據庫用戶及數據庫的刪除順序:
在刪除數據庫或者用戶時,必定要先進行權限的刪除。而後在進行數據庫和用戶的刪除,不然會產生其餘不可預知的錯誤。
查看mysql版本:
mysql -V // v爲大寫
mysql修改本地主機鏈接:
1登陸mysql,選擇數據庫:
use mysql;
2.經過update命令來更新user表中的host記錄--user必須是數據庫中沒有的
update user set host='%' where user='root';
3.刷新一下
FLUSH PRIVILEGES;
4.重啓數據庫
若是這樣的話 遠程是能夠鏈接的可是本地就沒法鏈接了。
爲何會出現這個狀況呢?
是由於在mysql數據庫的user的host字段中,已經明確拒絕本地登陸。咱們如今須要修改這個字段,把該字段中的不須要的相關記錄所有刪除。
先中止數據庫,而後使用mysqld_safe –skip-grant-tables &方式啓動數據庫。這種方式啓動數據庫,跳過了mysql數據庫的安全驗證。
/etc/init.d/mysqld stop mysqld_safe –skip-grant-tables & mysql -uroot mysql use mysql; select host,user from user;
可使用mysql鏈接工具刪除root之外的全部數據。
也可使用sql語句刪除:
delete from user where host='127.0.0.1'; delete from user where host='::1'; delete from user where host='localhost';