linux下對mysql的操作

修改的用戶都以root爲列。
一、擁有原來的myql的root的密碼;


方法一:
在mysql系統外,使用mysqladmin
mysqladmin -u root -p password "test123"
Enter password: 【輸入原來的密碼】

方法二:
通過登錄mysql系統,
mysql -uroot -p
Enter password: 【輸入原來的密碼】
mysql>use mysql;
mysql> update user set password=passworD("test") where user='root';
mysql> flush privileges;
mysql> exit;      



二、忘記原來的myql的root的密碼;

首先,你必須要有操作系統的root權限了。要是連繫統的root權限都沒有的話,先考慮root系統再走下面的步驟。
類似於安全模式登錄系統,有人建議說是pkill mysql,但是我不建議哈。因爲當你執行了這個命令後,會導致這樣的狀況:
/etc/init.d/mysqld status
mysqld dead but subsys locked
這樣即使你是在安全模式下啓動mysql都未必會有用的,所以一般是這樣/etc/init.d/mysqld stop,如果你不幸先用了pkill,那麼就start一下再stop咯。
mysqld_safe --skip-grant-tables &
&,表示在後臺運行,不再後臺運行的話,就再打開一個終端咯。
mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("test123") WHERE user='root';   
mysql> flush privileges;
mysql> exit;                         

##本來mysql是不分大小寫的,但是這個是修改的mysql中的mysql數據庫的具體的值,要注意到。


操作:

1、顯示數據庫

 show databases;

2、選擇數據庫

use 數據庫名;

3、顯示數據庫中的表

show tables;

4、顯示數據表的結構 

describe 表名;

 5、顯示錶中記錄 

SELECT * FROM 表名

 6、建庫

 create databse 庫名;

 7、建表

複製代碼
create table 表名 (字段設定列表);

mysql> create table name(
    -> id int auto_increment not null primary key ,
    -> uname char(8),
    -> gender char(2),
    -> birthday date );
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+------------------+
| Tables_in_userdb |
+------------------+
| name             |
+------------------+
1 row in set (0.00 sec)

mysql> describe name;
+----------+---------+------+-----+---------+----------------+
| Field    | Type    | Null | Key | Default | Extra          |
+----------+---------+------+-----+---------+----------------+
| id       | int(11) | NO   | PRI | NULL    | auto_increment |
| uname    | char(8) | YES  |     | NULL    |                |
| gender   | char(2) | YES  |     | NULL    |                |
| birthday | date    | YES  |     | NULL    |                |
+----------+---------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

注: auto_increment 自增
     primary key    主鍵
複製代碼

 8、增加記錄

 insert into name(uname,gender,birthday) values('張三','','1971-10-01');

 9、修改記錄

update name set birthday='1971-01-10' where uname='張三';

 10、刪除記錄

delete from name where uname='張三';

 11、刪除表

drop table 表名

 12、刪除庫

 drop database 庫名;

13、備份數據庫 

mysqldump -u root -p --opt 數據庫名>備份名; //進入到庫目錄

14、恢復

mysql -u root -p 數據庫名<備份名; //恢復時數據庫必須存在,可以爲空數據庫

 15、數據庫授權

  格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by "密碼"

例1、增加一個用戶user001密碼爲123456,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MySQL,然後鍵入以下命令:

 mysql> grant select,insert,update,delete on *.* to user001@"%" Identified by "123456";

 

例2、增加一個用戶user002密碼爲123456,讓此用戶只可以在localhost上登錄,也可以設置指定IP,並可以對數據庫test進行查詢、插入、修改、刪除的操作 (localhost指本地主機,即MySQL數據庫所在的那臺主機)

        //這樣用戶即使用知道user_2的密碼,他也無法從網上直接訪問數據庫,只能通過MYSQL主機來操作test庫。
        //首先用以root用戶連入MySQL,然後鍵入以下命令:

  mysql>grant select,insert,update,delete on test.* to user002@localhost identified by "123456";

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章