1. 程式人生 > >MySQL的基礎命令<一>

MySQL的基礎命令<一>

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的啟動

[[email protected] mysql-5.1.72]# cp support-files/mysql.server /etc/init.d/mysqld
[[email protected] mysql-5.1.72]# chmod 700 /etc/init.d/mysqld
[[email protected]
/* */ mysql-5.1.72]# /etc/init.d/mysqld restart

2、多實例MySQL的啟動

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

一般啟動:

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

3、為MySQL增加登錄密碼

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

3.1 多實例MySQL增加密碼

[[email protected] bin]# mysqladmin -uroot -S /data/3306/mysql.sock password ‘fenghui‘ 
[[email protected] bin]# mysql -S /data/3306/mysql.sock  
ERROR 1045 (28000): Access denied for user [email protected] (using password: NO)
#這時你不能不使用密碼登錄,使用下面的登錄,但是不建議使用此種方式,因為會暴露密碼
#mysql -S /data/3306/mysql.sock -uroot -p回車,然後輸入密碼
[[email protected]
/* */ 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修改密碼

[[email protected] ~]# mysqladmin  -uroot -pfenghui password ‘1234‘ -S /data/3306/mysql.sock
#這裏不需要重啟MySQL服務

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

5、找回MySQL的登錄密碼

5.1 單實例找回密碼

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

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

5.2 多實例找回密碼

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

[[email protected] ~]# /application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf --skip-grant-tables &
[1] 7787
[[email protected] ~]# 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
[[email protected] ~]# 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()         |
+----------------+
| [email protected] |
+----------------+
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 [email protected];
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 [email protected] IDENTIFIED BY ‘1234‘;
Query OK, 0 rows affected (0.00 sec)
#創建一個用戶feitian只能在本地登錄,密碼是1234,對mysql庫中的表有所有權利

2.2.2 先創建用戶在授權

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

2.3查看用戶的授權

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

用戶可授權的所有權限:

mysql> REVOKE DELETE ON *.* from [email protected];
Query OK, 0 rows affected (0.00 sec)
#收回一個刪除的權利,在次查看改用戶的權利,就得到所有權利
mysql> show grants for [email protected]\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 [email protected] IDENTIFIED BY PASSWORD ‘*A4B6157319038724E3560894F7F932C8886EBFCF‘
1 row in set (0.00 sec)


本文出自 “13122323” 博客,請務必保留此出處http://13132323.blog.51cto.com/13122323/1955805

MySQL的基礎命令<一>