linux下MySQL使用方法


一、登錄MySQL

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

username 與 password 分別是 MySQL 的用戶名與密碼,mysql的初始管理帳號是root,沒有密碼,注意:這個root用戶不是Linux的系統用戶。MySQL默認用戶是root,由於 初始沒有密碼,第一次進時只需鍵入mysql即可。  [root@test1 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。  鍵入以下命令 :  

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

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

[root@test1 local]# mysql  

ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)  顯示錯誤,說明密碼已經修改。  2)用修改后的密碼登錄  

[root@test1 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目錄下,在需要啟動時運行下面命令即可。  [root@test1 init.d]# /etc/init.d/mysql start  

2、停止  

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

3、自動啟動  

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

[root@test1 local]# /sbin/chkconfig –list  2)把MySQL添加到你系統的啟動服務組里面去  

[root@test1 local]# /sbin/chkconfig – add mysql  3)把MySQL從啟動服務組里面刪除。  

[root@test1 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)中。命令如下:  

[root@test1 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。  

[root@test1 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 joe@10.163.225.87 identified by '123';

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

mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by '123';

給來自10.163.225.87的用戶joe分配可對數據庫vtdc所有表進行所有操作的權限,並設定口令為123。

mysql>grant all privileges on *.* to joe@10.163.225.87 identified by '123';

給來自10.163.225.87的用戶joe分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123。

mysql>grant all privileges on *.* to joe@localhost identified by '123';

給本機用戶joe分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM