MySQL的基礎命令<一>

MySQL常用基礎操作命令(5.5)

一、MySQL的啓動與關閉

1、MySQL的啓動與停止的實質

  啓動的實質:mysqld_salf --default-file=/data/3306/my.cnf

  停止的實質:mysqladmin uroot -p"密碼" -s /date/3306/mysql.sock shutdown

二、MySQL的密碼有關問題

1、單實例MySQL的啓動 

[root@feitian mysql-5.1.72]# cp support-files/mysql.server /etc/init.d/mysqld
[root@feitian mysql-5.1.72]# chmod 700 /etc/init.d/mysqld
[root@feitian mysql-5.1.72]# /etc/init.d/mysqld restart

2、多實例MySQL的啓動

   默認sock文件在編譯過程中可以指定路徑,如果多實例安裝的MySQL啓動時要指定sock文件,因爲他不知道你初始化數據庫時,你的sock文件路徑。

   一般啓動:

[root@loveyu ~]# /data/3306/mysql start   
#mysql的登錄使用的是一個腳本,在文章的上傳附件中。               
Starting MySQL...
[root@loveyu ~]# netstat -lnt |grep 3306
tcp     0    0 0.0.0.0:3306      .0.0.0:*       LISTEN

3、爲MySQL增加登錄密碼

   單實例和多是例增加密碼的方式一樣,只是多實例修改和登錄要指定MySQL的sock文件路徑

  3.1 多實例MySQL增加密碼

[root@loveyu bin]# mysqladmin -uroot -S /data/3306/mysql.sock password 'fenghui' 
[root@loveyu bin]# mysql -S /data/3306/mysql.sock  
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
#這時你不能不使用密碼登錄,使用下面的登錄,但是不建議使用此種方式,因爲會暴露密碼
#mysql -S /data/3306/mysql.sock -uroot -p回車,然後輸入密碼
[root@loveyu bin]# mysql -S /data/3306/mysql.sock -uroot -p'fenghui'
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.5.32-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 4、爲MySQL用戶修改密碼

 4.1 用SQL語句修改MySQL的密碼

mysql> show databases;
+--------------------+
| Database     |
+--------------------+
| information_schema|
| mysql       |
| performance_schema|
| test       |
+--------------------+
4 rows in set (0.05 sec)

mysql> use mysql
Database changed
mysql> select * from mysql.user\G;
#這裏的列表太長,這裏就不列出了。
#修改本地root的登錄密碼。
mysql> update mysql.user set password=password(12345) where user='root' and  host='localhost';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0
#這裏注意在SQL語句中修改完密碼,要重啓MySQL服務

 4.2 在Linux系統中使用mysqladmin修改密碼

[root@loveyu ~]# mysqladmin  -uroot -pfenghui password '1234' -S /data/3306/mysql.sock
#這裏不需要重啓MySQL服務

  注意:這是多實例的修改方法,如果是單實例只需要去掉-S /data/3306/mysql.sock 

5、找回MySQL的登錄密碼

5.1 單實例找回密碼

[root@loveyu ~]# /data/3306/mysql stop
Stoping MySQL...
#停止完成之後需要指定--skip-grant-tables 參數啓動,他是忽略授權表登錄
[root@loveyu ~]# /application/mysql/bin/mysqld_safe  --skip-grant-tables --user=mysql &
[root@loveyu ~]# mysql -uroot -p   #回車,他會提示你輸入密碼,你只需要回車就會進入數據庫
#登錄mysql使用前面的update更改root本地登錄的密碼,重啓mysql服務就完成了。

mariadb 數據庫使用 mysql_safe --skip-grant-tables & 啓動數據庫,也是使用updata修改密碼。

5.2 多實例找回密碼

    只有啓動時和單實例MySQL不一樣,其他都一樣,多實例MySQL的啓動:

[root@loveyu ~]# /application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf --skip-grant-tables &
[1] 7787
[root@loveyu ~]# 170808 13:34:40 mysqld_safe Logging to '/data/3307/mysql_oldboy3307.err'.
170808 13:34:40 mysqld_safe Starting mysqld daemon with databases from /data/3307/data
[root@loveyu ~]# mysql -uroot -p -S /data/3307/mysql.sock 
#登錄之後,用updata修改本地root的登錄密碼,重新啓動。

三、SQL語句的定義和分類

1、什麼是SQL?

    SQL英文全稱Structured Query Language,中文意思結構化查詢語言,他是一中對關係型數據庫的數據進行定義和操作的語言方法。SQL是一種數據庫查詢和程序設計語言。

2、SQL的分類

DQC(Date Query Language)數據查詢語言數據檢索語句,關鍵字常見的有 SELECT

DML(Data Manipulation 

Language)

數據操縱語言關鍵字,INSERT、UPDATA、DELETE等
TPL (不常用)事物處理語言他的語句確保DML語句影響的表能及時更新
DCL(Data Control Language)數據控制語言關鍵字GRANT、REVOKE

DDL (Data definition

Language) 

數據定義語言關鍵字CREATE、DROP
CCL(Cursor Control Language)指針控制語言UPDATA WHERE CURRENT 用於一個或多個表

  我們常用的SQL分類

SQL分類: 
DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE) 
DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT) 
DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)

四、MySQL數據庫常見的管理和應用

1、數據庫的創建查看刪除和連接   

1.1創建命令語法   

  CREATE database <名稱>;  

mysql> CREATE DATABASE feitian;
Query OK, 1 row affected (0.03 sec)
mysql> SHOW DATABASES ;                  
+--------------------+
| Database           |
+--------------------+
| information_schema |
| feitian            |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

1.2 創建一個GBK字符集的數據庫     

mysql> CREATE DATABASE GBK DEFAULT CHARACTER  SET GBK COLLATE gbk_chinese_ci;
Query OK, 1 row affected (0.00 sec)

1.3 創建一個utf-8字符集的數據庫   

mysql> CREATE DATABASE UTF DEFAULT CHARACTER  SET utf8  COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
#數據庫的名字叫UTF

1.4 顯示數據庫

mysql> CREATE DATABASE UTF DEFAULT CHARACTER  SET utf8  COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| feitian            |
| gbk                |
| mysql              |
| performance_schema |
| test               |
| utf                |
+--------------------+
7 rows in set (0.00 sec)
mysql> USE gbk;
Database changed
#查看當前所在的表,相當於linux中的pwd.
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| gbk        |
+------------+
1 row in set (0.00 sec)
#查看當前登錄的用戶
mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
#查看當前時間
mysql> select now();
+---------------------+
| now()       |
+---------------------+
|2017-08-08 14:21:10 |
+---------------------+
1 row in set (0.00 sec)
#查看數據庫名稱中含有e的。
mysql> SHOW DATABASES LIKE '%e%';
+--------------------+
| Database (%e%)  |
+--------------------+
| information_schema|
| feitian      |
| performance_schema|
| test       |
+--------------------+
4 rows in set (0.00 sec)

1.5刪除數據庫 

mysql> DROP DATABASE GBK;
Query OK, 0 rows affected (0.06 sec)
#刪除名字爲GBK的數據庫

1.6連接數據庫

mysql> use mysql;
Database changed
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

2、數據庫中用戶的創建和刪除和授權

2.1 刪除用戶

mysql> select user,host from mysql.user; 
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
|      | localhost |
| root | localhost |
|      | loveyu    |
| root | loveyu    |
+------+-----------+
6 rows in set (0.00 sec)
mysql> drop  user 'root'@'loveyu';
Query OK, 0 rows affected (0.00 sec)

注意:如果含有大寫字母的名稱用drop刪除不了可以使用下面的命令

delet from mysql.user where user='LALA' and hoset='localhost'

2.2 創建用戶和對用戶授權和查看用戶的權限

2.2.1 創建用戶和授權一步完成

mysql> GRANT ALL ON mysql.* TO 'feitian'@localhost IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00 sec)
#創建一個用戶feitian只能在本地登錄,密碼是1234,對mysql庫中的表有所有權利

2.2.2 先創建用戶在授權

mysql> CREATE USER 'lala'@'172.25.254.231'  IDENTIFIED  BY '1234';
Query OK, 0 rows affected (0.00 sec)
#創建用用戶,只能在172.25.254.231這臺主機登錄,密碼是1234.
mysql> GRANT ALL ON *.*  TO 'lala'@'172.25.254.231';
Query OK, 0 rows affected (0.00 sec)
給lala這個用戶所有權限操作整個數據庫。

2.3查看用戶的授權

mysql> show grants for 'lala'@'172.25.254.231';
+---------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                            |
+---------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'lala'@'172.25.254.231' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' |
+---------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

用戶可授權的所有權限:

mysql> REVOKE DELETE ON *.* from 'lala'@'172.25.254.231';
Query OK, 0 rows affected (0.00 sec)
#收回一個刪除的權利,在次查看改用戶的權利,就得到所有權利
mysql> show grants for 'lala'@'172.25.254.231'\G;
*************************** 1. row ***************************
Grants for [email protected]: GRANT SELECT, INSERT, UPDATE, CREATE, DROP, RELOAD, 
SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES,
 LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE,
 ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE ON *.* TO 'lala'@'172.25.254.231' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
1 row in set (0.00 sec)


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