啓動的實質:mysqld_salf --default-file=/data/3306/my.cnfmysql
中止的實質:mysqladmin uroot -p"密碼" -s /date/3306/mysql.sock shutdown
linux
2、MySQL的密碼有關問題sql
一、單實例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
二、多實例MySQL的啓動bash
默認sock文件在編譯過程當中能夠指定路徑,若是多實例安裝的MySQL啓動時要指定sock文件,由於他不知道你初始化數據庫時,你的sock文件路徑。app
通常啓動:
tcp
[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
三、爲MySQL增長登陸密碼
ide
單實例和可能是例增長密碼的方式同樣,只是多實例修改和登陸要指定MySQL的sock文件路徑ui
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.
四、爲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
五、找回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的登陸密碼,從新啓動。
3、SQL語句的定義和分類
一、什麼是SQL?
SQL英文全稱Structured Query Language,中文意思結構化查詢語言,他是一中對關係型數據庫的數據進行定義和操做的語言方法。SQL是一種數據庫查詢和程序設計語言。
二、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)
4、MySQL數據庫常見的管理和應用
一、數據庫的建立查看刪除和鏈接
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.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 lala@172.25.254.231 | +---------------------------------------------------------------------------------------------------------------------------+ | 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 lala@172.25.254.231: 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)