1. 程式人生 > 其它 >MySQL資料庫基本管理

MySQL資料庫基本管理

MySQL資料庫基本管理

Mysql是一個典型的C/S服務結構,它自帶客戶端,例如:mysql、mysqladmin和mysqldump等。

1.設定MySQL密碼

初始狀態下,管理員root的密碼為空或者是隨機生成的,而且只允許本機登入。一般情況下,我們安裝好Mysql之後的第一件事就是修改預設的密碼。

#  設定初始密碼 由於原密碼為空,因此-p可以不用
[root@localhost ~]# mysqladmin -uroot password "123"    
 
# 修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設定新密碼
[root@localhost ~]# mysqladmin -uroot -p"123" password "456"        

2.MySQL連線工具與方式

​ Mysql的連線方式和工具有很多種

2.1MySQL自帶的連線命令公式

mysql
#常見的特定於客戶機的連線選項:
-u:             指定使用者  mysql -uroot
-p:             指定密碼  mysql -uroot -p567
-h:             指定主機域  mysql -uroot -p567 -h127.0.0.1
-P:             指定埠    mysql -uroot -p567 -h127.0.0.1 -P3307
-S:             指定socket檔案 mysql -uroot -p567 -S /tmp/mysql.sock
-e:             指定SQL語句(庫外執行SQL語句) mysql -uroot -p567 -e "show databases;"
--protocol:     指定連線方式 mysql --protocol=TCP  --protocol=socket

1.登入MySQL伺服器
#1.正確登入命令
[root@localhost ~]# mysql -uroot -p123
[root@localhost ~]# mysql -u root -p123
[root@localhost ~]# mysql  # 以root使用者登入本機,密碼為空
 
#2.錯誤登入命令
[root@localhost ~]# mysql -u root -p 123  # -p選項與密碼之間不要有空格

2.連線方式
1. TCP/IP的連線方式
2. 套接字連線方式,socket連線
3. 預設使用socket方式連線
 
#檢視連線方式
mysql> status;
--------------
Connection:     Localhost via UNIX socket
 
3.舉例:
    3.1.TCP/IP連線,通常帶有-h選項的都是TCP/IP連結
      mysql -uroot -p -h127.0.0.1 -P 埠號
      mysql -uroot -p -h127.0.0.1 -S /tmp/mysql.sock
 
    3.2.socket連線
    	mysql -uroot -p123(預設連線方式,socket)
 
4.注意:
    4.1.因為使用TCP/IP連線,需要建立三次握手
    4.2.不一定-h都是tcp,-hlocalhost是socket連線
        mysql -uroot -p -hlocalhost

2.2第三方工具連線

通常情況下不使用Mysql自帶的資料庫連線工具來連線資料庫的,一般情況下我們使用的是第三方資料庫連線工具來連線Mysql的。其中我們最常用的資料庫連線工具是navicat來連線資料庫,這個資料庫連線工具的功能非常強大,非常適合用來操作資料庫。

# 在連結之前,必須建立遠端連線使用者

1.mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Test123!' WITH GRANT OPTION;
			
			ALL PRIVILEGES : 所有的許可權
			*.*				: 正對於所有的庫所有的表
			root			: 使用者名稱
			localhost		: 可以連結的IP(%代表所有的IP)
	
2.FLUSH PRIVILEGES;   # 重新整理許可權



3.SQL操作資料庫

3.1查詢資料庫

-- 查詢所有的資料庫
mysql> show databases;

-- 檢視資料庫的建立SQL
mysql> show create database mysql;

-- 檢視正在使用的資料庫
mysql> use mysql

-- 檢視字符集編碼
mysql> show variables like '%char%'

-- 檢視正在使用的資料庫
mysql> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

3.2建立資料庫

mysql> CREATE DATABASE IF NOT EXISTS test01 CHARACTER SET utf8 COLLATE utf8_general_ci;

3.3修改資料庫

mysql> ALTER DATABASE test01 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

3.4指定資料庫

mysql> use <資料庫>;
Database changed

3.5刪除資料庫

mysql> DROP DATABASE <資料庫>;
Query OK, 0 rows affected (0.00 sec)

4.MySQLadmin命令

1.修改密碼,設定密碼:password
1.1: [root@db01 ~]# mysqladmin -uroot -p舊密碼 password '新密碼'
1.2: MySQL > grant all privileges on *.* to root@'%' identified by '123456';
 
2.關閉MySQL服務:shutdown
[root@db01 ~]# mysqladmin -uroot -p密碼 -S socket檔案 shutdown
 
3.庫外建庫:create
[root@db01 ~]# mysqladmin -uroot -p密碼 create egon
[root@db01 ~]# mysql -uroot -p123456 -e 'create database egon'
 
4.庫外刪除資料庫:drop
[root@db01 ~]# mysqladmin -uroot -p123456 drop egon
Do you really want to drop the 'egon' database [y/N] y
Database "egon" dropped
 
5.檢視配置檔案所有的預設引數:variables
[root@db01 ~]# mysqladmin -uroot -p123456 variables
[root@db01 ~]# mysqladmin -uroot -p123456 variables | grep server_id
 
6.檢測MySQL程序是否存活:ping
[root@db01 ~]# mysqladmin -uroot -p123456 ping
 
7.檢視資料庫 慢查詢,負載資訊:status
[root@db01 ~]# mysqladmin -uroot -p123456 status
Uptime                   MySQL伺服器已經執行的秒數
Threads                  活躍執行緒(客戶)的數量 
Questions                從mysqld啟動起來自客戶問題的數量   已經發送給伺服器的查詢的個數
Slow queries             已經超過long_query_time秒的查詢數量 
Opens                    mysqld已經打開了多少表 
Flush tables             flush ..., refresh和reload命令數量 
Open tables              現在被開啟的表數量
Queries per second avg: 0.046   負載
 
8.過載授權表,重新整理快取主機:reload,相當於flush privileges
[root@db01 ~]# mysqladmin -uroot -p123456 reload
 
9.重新整理binlog日誌
[root@db01 ~]# mysqladmin -uroot -p123456 flush-log

5.MySQL資料中的資料型別

5.1建立資料表

mysql> CREATE TABLE city ( id int );
Query OK, 0 rows affected (0.00 sec)