1. 程式人生 > >linux下MySQL使用方法

linux下MySQL使用方法

一、登入MySQL

登入MySQL的命令是mysql, mysql 的使用語法如下:  mysql [-u username] [-h host] [-p[password]] [dbname]  

username 與 password 分別是 MySQL 的使用者名稱與密碼,mysql的初始管理帳號是root,沒有密碼,注意:這個root使用者不是Linux的系統使用者。MySQL預設使用者是root,由於 初始沒有密碼,第一次進時只需鍵入mysql即可。  [[email protected] local]# mysql  

Welcome to the MySQL monitor. Commands end with  or \g.  Your MySQL connection id is 1 to server version: 4.0.16-standard  Type 'help;' or '\h' for help. Type '\c' to clear the buffer.  mysql>  

出現了“mysql>”提示 符,恭喜你,安裝成功!  增加了密碼後的登入格式如下:  mysql -u root -p  

Enter password: (輸入密碼)  

其中-u後跟的是使用者名稱,-p要求輸入密碼,回車後在輸入密碼處輸入密碼。  

注意:這個mysql檔案在/usr /bin目錄下,與後面講的啟動檔案/etc/init.d/mysql不是一個檔案。

二、MySQL的幾個重要目錄  

MySQL 安裝完成後不象SQL Server預設安裝在一個目錄,它的資料庫檔案、配置檔案和命令檔案分別在不同的目錄,瞭解這些目錄非常重要,尤其對於Linux的初學者,因為 Linux本身的目錄結構就比較複雜,如果搞不清楚MySQL的安裝目錄那就無從談起深入學習。  

下面就介紹一下這幾個目錄。  

1、 資料庫目錄

/var/lib/mysql/  

2、配置檔案

/usr/share /mysql(mysql.server命令及配置檔案)  

3、相關命令  

/usr/bin(mysqladmin mysqldump等命令)  

4、啟動指令碼  

/etc/rc.d/init.d/(啟動指令碼檔案mysql的目錄)

三、修改登入密碼

MySQL預設沒有密碼,安裝完畢增加密碼的重要性是不言而喻的。  

1、命令  

usr/bin/mysqladmin -u root password 'new-password'  格式:mysqladmin -u使用者名稱 -p舊密碼 password 新密碼  

2、例子  

例1:給root加個密碼123456。  鍵入以下命令 :  

[[email protected] local]# /usr/bin/mysqladmin -u root password 123456  注:因為開始時root沒有密碼, 所以-p舊密碼一項就可以省略了。  

3、測試是否修改成功  1)不用密碼登入  

[[email protected] local]# mysql  

ERROR 1045: Access denied for user: '[email protected]' (Using password: NO)  顯示錯誤,說明密碼已經修改。  2)用修改後的密碼登入  

[[email protected] local]# mysql -u root -p  Enter password: (輸入修改後的密碼123456)  

Welcome to the MySQL monitor. Commands end with  or \g.  Your MySQL connection id is 4 to server version: 4.0.16-standard  Type 'help;' or '\h' for help. Type '\c' to clear the buffer.  mysql>  成功!  

這是通過 mysqladmin命令修改口令,也可通過修改庫來更改口令。  

四、啟動與停止

1、啟動  

MySQL安裝完 成後啟動檔案mysql在/etc/init.d目錄下,在需要啟動時執行下面命令即可。  [[email protected] init.d]# /etc/init.d/mysql start  

2、停止  

/usr/bin/mysqladmin -u root -p shutdown

3、自動啟動  

1)察看mysql是否在自動啟動列表中  

[[email protected] local]# /sbin/chkconfig –list  2)把MySQL新增到你係統的啟動服務組裡面去  

[[email protected] local]# /sbin/chkconfig – add mysql  3)把MySQL從啟動服務組裡面刪除。  

[[email protected] local]# /sbin/chkconfig – del mysql  

五、更改MySQL目錄  

MySQL預設的資料文 件儲存目錄為/var/lib/mysql。假如要把目錄移到/home/data下需要進行下面幾步:  

1、home目錄下建立 data目錄  cd /home  mkdir data  

2、把MySQL服務程序停掉:  mysqladmin -u root -p shutdown  

3、把/var/lib/mysql整個目錄移到/home/data  mv /var/lib/mysql /home/data/  

這樣就把MySQL的資料檔案移動到了/home/data/mysql下  

4、 找到my.cnf配置檔案  

如果/etc/目錄下沒有my.cnf配置檔案,請到/usr/share/mysql/下找到*.cnf檔案,拷貝 其中一個到/etc/並改名為my.cnf)中。命令如下:  

[[email protected] mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf  

5、編輯MySQL的配置檔案/etc /my.cnf  

為保證MySQL能夠正常工作,需要指明mysql.sock檔案的產生位置。 修改

socket=/var/lib/mysql/mysql.sock一行中等號右邊的值為:/home/mysql/mysql.sock 。操作如下:  

vi  my.cnf    (用vi工具編輯my.cnf檔案,找到下列資料修改之)  # The MySQL server  [mysqld]  

port   = 3306  

#socket  = /var/lib/mysql/mysql.sock(原內容,為了更穩妥用“#”註釋此行)  socket  = /home/data/mysql/mysql.sock   (加上此行)  

6、修改MySQL啟動指令碼/etc/rc.d /init.d/mysql  

最後,需要修改MySQL啟動指令碼/etc/rc.d/init.d/mysql,把其中datadir=/var /lib/mysql一行中,等號右邊的路徑改成你現在的實際存放路徑:home/data/mysql。  

[[email protected] etc]# vi /etc/rc.d/init.d/mysql

#datadir=/var/lib/mysql    (註釋此行)  datadir=/home/data/mysql    (加上此行)  

7、重新啟動MySQL服務  

/etc/rc.d/init.d/mysql start  或用 reboot命令重啟Linux  

如果工作正常移動就成功了,否則對照前面的7步再檢查一下。

六、MySQL的常用操作

1、顯示資料庫

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| building           |

| mysql              |

| performance_schema |

| test               |

+--------------------+

5 rows in set (0.00 sec)

Mysql剛安裝完有兩個資料庫:mysql和test。mysql庫非常重要, 它裡面有MySQL的系統資訊,我們改密碼和新增使用者,實際上就是用這個庫中的相關表進行操作。

2、顯示資料庫中的表  

mysql> use mysql; (開啟庫,對每個庫進行操作就要開啟此庫,類似於foxpro )

Database changed

mysql> show tables;

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

| db                        |

| event                     |

| func                      |

| general_log               |

| help_category             |

| help_keyword              |

| help_relation             |

| help_topic                |

| host                      |

| ndb_binlog_index          |

| plugin                    |

| proc                      |

| procs_priv                |

| proxies_priv              |

| servers                   |

| slow_log                  |

| tables_priv               |

| time_zone                 |

| time_zone_leap_second     |

| time_zone_name            |

| time_zone_transition      |

| time_zone_transition_type |

| user                      |

+---------------------------+

24 rows in set (0.00 sec)

3、顯示資料表的結構:  describe 表名;

4、 顯示錶中的記錄:  (SQL語句中linux區分表名大小寫

select * from 表名;  

例如:顯示mysql庫中user表中的紀錄。所有能對MySQL使用者操作的用 戶都在此表中。

Select * from user;  

5、建庫:  

create database 庫名;  

例 如:建立一個名字位aaa的庫  mysql> create databases aaa;

6、建表:  use 庫名;  

create table 表名 (欄位設定列表);  

例如:在剛建立的aaa庫中建立表name,表中有id(序號,自動增 長),xm(姓名),xb(性別),csny(出身年月)四個欄位  use aaa;  

mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);  

可以用describe命令察看剛建立的表結構。  

mysql> describe name;

7、增加記錄  

例如:增加幾條相關紀錄。  

mysql> insert into name values('','張三','男','1971-10-01');  

mysql> insert into name values('','白雲','女','1972-05-20');  可用select命令來驗證結果。  

mysql> select * from name;

8、修改紀錄  

例如:將張三的出生年月改為1971-01-10

mysql> update name set csny='1971-01-10' where xm='張三';  

9、刪除紀錄  

例如:刪除張三的紀錄。  

mysql> delete from name where xm='張三';  

10、刪庫和刪表  

drop database 庫名;

drop table 表名;

七、向mysql新增新使用者並分配許可權

使用者新增

bin>mysql -u root

mysql> grant 許可權1,許可權2,...許可權n on 資料庫名稱.表名稱 to 使用者名稱@使用者地址 identified by '連線口令';

許可權1,許可權2,...許可權n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個許可權。

當權限1,許可權2,...許可權n被all privileges或者all代替,表示賦予使用者全部許可權。

當資料庫名稱.表名稱被*.*代替,表示賦予使用者操作伺服器上所有資料庫所有表的許可權。

使用者地址可以是localhost,也可以是ip地址、機器名字、域名。也可以用'%'表示從任何地址連線。

'連線口令'不能為空,否則建立失敗。

例如:

mysql>grant select,insert,update,delete,create,drop on vtdc.employee to [email protected] identified by '123';

給來自10.163.225.87的使用者joe分配可對資料庫vtdc的employee表進行select,insert,update,delete,create,drop等操作的許可權,並設定口令為123。

mysql>grant all privileges on vtdc.* to [email protected] identified by '123';

給來自10.163.225.87的使用者joe分配可對資料庫vtdc所有表進行所有操作的許可權,並設定口令為123。

mysql>grant all privileges on *.* to [email protected] identified by '123';

給來自10.163.225.87的使用者joe分配可對所有資料庫的所有表進行所有操作的許可權,並設定口令為123。

mysql>grant all privileges on *.* to [email protected] identified by '123';

給本機使用者joe分配可對所有資料庫的所有表進行所有操作的許可權,並設定口令為123。