mysql經常使用操做

一、鏈接數據庫的格式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';
相關文章
相關標籤/搜索