天天看點

Linux MySQL 基本操作

Linux MySQL 基本操作 http://www.bieryun.com/3242.html

連接配接到MySQL

連接配接到本機上的MySQL

mysql -u username -p 回車後輸入密碼           

連接配接到遠端主機上的MySQL

mysql -h主機位址 --port=端口号 -u username -ppassword           

開啟遠端通路權限

授權法

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
flush privileges;           

%:表示在任何用戶端機器上都能遠端通路,也可指定具體ip。

username:表示能以username使用者登入到MySQL伺服器。

ALL PRIVILEGES :表示賦予所有權限

改表法

use mysql;
update user set host='%' where user='username';           

檢視授權

show grants for test;
select * from mysql.user where user='test'\G;           

修改root使用者密碼

使用mysqladmin

mysqladmin -uroot password "newpassword"           

如果root使用者已經設定過密碼,則

mysqladmin -uroot password oldpassword "newpassword"           

修改user表

use mysql;
update user set password=password("newpassword") where user='root';
flush privileges;           

alter語句

flush privileges;           

set password語句

set password=password("newpassword")
flush privileges;           

root忘記密碼破解方法

  • 停止mysql服務
service mysqld stop           
  • 用以下指令啟動mysql,以不檢查權限的方式啟動
mysqld_safe --skip-grant-tables &           
  • 使用空密碼方式使用root使用者登入mysql
mysql -uroot -p 回車           
  • 修改root使用者的密碼
use mysql 
update user set password=password("newpassword") where user='root';
flush privileges;
quit           
  • 重新開機mysql服務
service mysqld restart           
  • root使用者使用新密碼進行登入
  • mysql -uroot -p 回車輸入新密碼、

資料庫

  • 顯示資料庫
show databases;           
  • 建立資料庫
create database db_name;           
  • 選擇資料庫
use db_name;           
  • 删除資料庫
drop database db_name;           

  • 建立表
create table scutech (id int not null  AUTO_INCREMENT,name varchar(20) not null,tel char(11),current_time timestamp default current_timestamp,primary key (id));           
  • 顯示資料庫中的表
show tables;           
  • 檢視表結構
desc table_name;           
  • 檢視表詳細結構語句
    show create table table_name;           
  • 向表中插入記錄
insert into scutech(name) values("zhou");           

将查詢到的結果插入表中

insert into table_name(屬性1,屬性2,...,屬性n) select 屬性清單 from 表名2 where 條件表達式           
  • 檢視表中記錄
select * from scutech;           
  • 計算表中記錄數
select count(*) from scutech;           
  • 更新表中記錄
update scutech set name="zhang" where id=1;           
  • 删除表中記錄
delete from scutech where id=1;           

修改表結構

  • 重命名表
alter table scutech rename newscutech;           

ALTER TABLE 表名 ADD 字段名 1 資料類型 [完整性限制條件] [FIRST|AFTER 屬性名 2];

alter table scutech add t1 char(10);
alter table scutech add sex enum ("boy","girl") default "boy" after name ;           
  • 修改字段名change (原字段名 新字段名 類型)

    ALTER TABLE 表名 CHANGE 原字段名 新字段名 新資料類型;

alter table scutech change tel phone_num char(11);           
  • 删除字段drop

    ALTER TABLE 表名 DROP 字段名;

alter table scutech drop name,drop sex;           
  • 修改字段類型modify,不能與字段已存儲的資料沖突

    ALTER TABLE 表名 MODIFY 字段名 資料類型;

alter table scutech modify sex enum("boy","girl","no") not null default "no";           
  • 修改表的存儲引擎
    alter table scutech engine=innodb;           
  • 删除表的外鍵限制
alter table table_name drop foreign key 外鍵名;           

資料庫引擎

show engines \G
show variables like '%engine%';           

innodb引擎

最常用,支援事務,復原,自增,外鍵

表結構存在.frm 檔案中

資料和索引存在表空間中

讀寫效率稍差,占用空間大

myisam

.myd 存儲資料

.myi 存儲索引

快速,占空間小,丌支援事務和幵収