在Linux系統使用簡單的MySQL操作
添加時間:2015-2-18 2:01:06
添加:
思海網絡
在wordpass博客重新安裝中MySQL數據庫的安裝是必備可少的,當然如果使用虛擬機主機的站站朋友除非,一般情況下都會集成mysql數據庫的。
下面我就簡單的說下關于mysql相關操作。當然了,關于MySQL的內容也是非常多的
只不過對于Linux系統管理員來講,一些基本的操作已經可以應付日常的管理工作了,至于更高深的那是DBA(專門管理數據庫的技術人員)的事情了。
1.更改mysql數據庫root的密碼
首次進入數據庫是不用密碼的
|
/usr/local/mysql/bin/mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.86 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
|
現在已經進入到了mysql 的操作界面了。退出的話,直接輸入exit即可。
Bye
先解釋一下上面的命令的含義,-u 用來指定要登錄的用戶,root用戶是mysql自帶的管理員賬戶,默認沒有密碼的,那么如何給root用戶設定密碼?按如下操作:
|
/usr/local/mysql/bin/mysqladmin -u root password ‘123456’
|
這樣就可以設定root用戶的密碼了。其中mysqladmin就是用來設置密碼的工具,-u 指定用戶,passwod 后跟要定義的密碼,密碼需要用單引號或者雙引號括起來。
另外你也許發現了,敲命令時總在前面加/usr/local/mysql/bin/ 這樣很累。
但是直接打mysql 又不能用,這是因為在系統變量$PATH中沒有/usr/local/mysql/bin/這個目錄
所以需要這樣操作(如果你的linux可以直接打出mysql這個命令,則不要做這個操作):
在最后加入一行:
|
export PATH=$PATH:/usr/local/mysql/bin/
|
保存后運行
設定完密碼后,再來運行最開始進入mysql數據庫操作界面的命令:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
就報錯了,這是因為root用戶有密碼。
|
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.0.86 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
|
需要加-p選項指定密碼,這時就會提示你輸入密碼了。
當設定密碼后,如果要想更改密碼如何操作呢?
|
mysqladmin -u root -p password "123456789"
|
Enter password:
輸入原來root的密碼就可以更改密碼了。
2.連接數據庫
剛剛講過通過使用mysql -u root -p 就可以連接數據庫了,但這只是連接的本地的數據庫’localhost’,然后有很多時候都是去連接網絡中的某一個主機上的mysql。
|
mysql -u user1 -p –P 3306 -h 10.0.2.69
|
其中-P(大寫)指定遠程主機mysql的綁定端口,默認都是3306;-h指定遠程主機的IP
3.一些基本的MySQL操作命令
(1. 查詢當前所有的庫
mysql> show databases;
|
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
|
(2. 查詢某個庫的表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
mysql> use mysql;
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| proc |
| procs_priv |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
|
(3. 查看某個表的字段
|
mysql> desc func; //func 是表名
+-------+------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------------------+------+-----+---------+-------+
| name | char(64) | NO | PRI | | |
| ret | tinyint(1) | NO | | 0 | |
| dl | char(128) | NO | | | |
| type | enum('function','aggregate') | NO | | NULL | |
+-------+------------------------------+------+-----+---------+-------+
|
(4. 查看某個表的表結構(創建表時的詳細結構)
|
mysql> show create table func;
|Table | CreateTable |
| func | CREATE TABLE `func` (
`name` char(64) collate utf8_bin NOT NULL default '',
`ret` tinyint(1) NOT NULL default '0',
`dl` char(128) collate utf8_bin NOT NULL default '',
`type` enum('function','aggregate') character set utf8 NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions' |
+-------+----------------------------------------------------------------------------------------------------------------------
|
5. 查看當前是哪個用戶
|
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
|
6. 查看當前所在數據庫
|
mysql> select database();
+------------+
| database() |
+------------+
| mysql |
+------------+
|
7. 創建一個新庫
|
mysql> create database db1;
Query OK, 1 row affected (0.04 sec)
|
8. 創建一個表
|
mysql> create table t1 ( `id` int(4), `name` char(40));
Query OK, 0 rows affected (0.02 sec)
mysql> desc t1;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(4) | YES | | NULL | |
| name | char(40) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
|
9. 查看當前數據庫版本
|
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.86 |
+-----------+
|
10. 查看當前系統時間
|
mysql> select current_date, current_time;
+--------------+--------------+
| current_date | current_time |
+--------------+--------------+
| 2011-05-31 | 08:52:50 |
+--------------+--------------+
|
11. 查看當前mysql的狀態
mysql> show status;
+———————————–+———-+
| Variable_name | Value |
+———————————–+———-+
| Aborted_clients | 0 |
| Aborted_connects | 1 |
| Binlog_cache_disk_use | 0 |
| Binlog_cache_use | 0 |
| Bytes_received | 664 |
| Bytes_sent | 6703 |
這個命令打出很多東西,顯示你的mysql狀態。
12. 查看mysql的參數
很多參數都是可以在/etc/my.cnf中定義的。
13. 創建一個普通用戶并授權
|
mysql> grant all on *.* to user1 identified by '123456';
Query OK, 0 rows affected (0.01 sec)
|
all 表示所有的權限(讀、寫、查詢、刪除等等操作),*.*前面的*表示所有的數據庫,后面的*表示所有的表,identified by 后面跟密碼,用單引號括起來。
這里的user1指的是localhost上的user1,如果是給網絡上的其他機器上的某個用戶授權則這樣:
|
mysql> grant all on db1.* to 'user2'@'10.0.2.100' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
|
用戶和主機的IP之間有一個@,另外主機IP那里可以用%替代,表示所有主機。例如:
|
mysql> grant all on db1.* to 'user3'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
|
一些常用的sql
1. 查詢語句
|
mysql> select count(*) from mysql.user;
|
mysql.user表示mysql庫的user表;count(*)表示表中共有多少行。
mysql> select * from mysql.db;
查詢mysql庫的db表中的所有數據
mysql> select db from mysql.db;
查詢mysql庫db表的db段。
mysql> select * from mysql.db where host like ’10.0.%’;
查詢mysql庫db表host字段like 10.0.% 的行,這里的%表示匹配所有,類似于前面介紹的通配符。
2. 插入一行
|
mysql> insert into db1.t1 values (1, 'abc');
Query OK, 1 row affected (0.00 sec)
|
t1表在前面已經創建過。
|
mysql> select * from db1.t1;
+------+------+
| id | name |
+------+------+
| 1 | abc |
+------+------+
|
3. 更改某一行
|
mysql> update db1.t1 set name='aaa' where id=1;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
|
這樣就把原來id為1的那行中的name改成’aaa’
4. 刪除表
|
mysql> drop table db1.t1;
Query OK, 0 rows affected (0.01 sec)
|
5. 刪除數據庫
|
mysql> drop database db1;
Query OK, 0 rows affected (0.07 sec)
|
6. 備份與恢復庫
|
mysqldump -uroot -p mysql >mysql.sql
|
這里的mysqldump 就是備份的工具了,-p后面的mysql指的是mysql庫,把備份的文件重定向到mysql.sql。如果恢復的話,只要:
|
mysql -uroot -p mysql < mysql.sql
|
關于MySQL的基本操作筆者就介紹這么多,當然學會了這些還遠遠不夠,希望你能夠在你的工作中學習到更多的知識,如果你對MySQL有很大興趣,不妨深入研究一下,畢竟多學點總沒有壞處。
關鍵字:Linux、MySQL、數據庫