MySQL資料庫基本管理
阿新 • • 發佈:2022-03-01
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)