MySQL的二進制安裝方式
阿新 • • 發佈:2018-10-05
name defaults 開源 lower distrib fault sys nta protocol MySQL和MariaDB
官方網址:
https://www.mysql.com/
http://mariadb.org/
2、官方文檔
https://dev.mysql.com/doc/
https://mariadb.com/kb/en/
3、版本演變:
MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 -->8.0
MariaDB:5.5 -->10.0--> 10.1 --> 10.2 --> 10.3
安裝MYSQL
Mariadb安裝方式: 1、源代碼:編譯安裝 2、二進制格式的程序包:展開至特定路徑,並經過簡單配置後即可使用 3、程序包管理器管理的程序包 4、CentOS 安裝光盤 項目官方:https://downloads.mariadb.org/mariadb/repositories/ 國內鏡像:https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-x.y.z/yum/centos/7/x86_64/
二進制安裝
二進制格式安裝過程
1、下載二進制包, 官網的下載路徑: wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.15/bintar-linux-x86_64/mariadb-10.2.15-linux-x86_64.tar.gz 這裏的網絡路徑是我自己在本地搭的一個網絡存放路徑 wget http://172.20.7.53/yum/mariadb/mariadb-10.2.15-linux-x86_64.tar.gz 2、添加組和用戶 [root@node2 ~]# groupadd -r -g 306 mysql [root@node2 ~]# useradd -g mysql -u 306 -r mysql 3、解壓mariadb二進制包到/usr/local下去 [root@node2 ~]# tar xf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/ 4、進入到/usr/local下面創建mysql的軟連接 [root@node2 ~]# cd /usr/local/ [root@node2 /usr/local]# ln -s mariadb-10.2.15-linux-x86_64/ mysql 5、修改mysql的相對應的屬主和屬組權限 [root@node2 /usr/local]# chown -R root.mysql mysql/ 6、創建數據文件的存放路徑,並修改所屬組的權限為mysql [root@node2 ~]# cd /app/ [root@node2 /app]# mkdir mydata [root@node2 ]# chown -R mysql.mysql /app 7、初始化數據庫,指定好數據文件的存放路徑和用戶 [root@node2 ]# cd /usr/local/mysql/ [root@node2 /usr/local/mysql/]# scripts/mysql_install_db --datadir=/app/mydata --user=mysql 8、拷貝mariadb的啟動腳本到/etc/rc.d/init.d下命名為mysqld [root@node2 /usr/local/mysql/]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 9、把mysqld設置為開機啟動 [root@node2 /usr/local/mysql/]# chkconfig --add mysqld 10、創建mariadb的配置文件存放路徑,並拷貝模版文件到這個目錄下命名為my.cnf [root@node2 /usr/local/mysql/]# mkdir /etc/mysql [root@node2 /usr/local/mysql/]#cp support-files/my-large.cnf /etc/mysql/my.cnf 11、配置系統環境變量,重讀配置文件讓它生效 [root@node2 /usr/local/mysql/]# vim /etc/profile.d/mysql.sh [root@node2 /usr/local/mysql/]#export PATH=/usr/local/mysql/bin:$PATH [root@node2 /usr/local/mysql/]# . /etc/profile.d/mysql.sh 12、修改mariadb的配置文件需要增加幾條內容 [root@node2 /usr/local/mysql/]# vim /etc/mysql/my.cnf lower_case_table_names = 1 character-set-server = utf8 datadir = /app/mydata innodb_file_per_table = on skip_name_resolve = o 13、啟動數據庫服務 [root@node2 /usr/local/mysql/]# service mysqld start 14、查看mariadb的服務端口是否正常監聽 [root@node2 /app]#ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:52874 *:* LISTEN 0 128 *:11211 *:* LISTEN 0 128 *:111 *:* LISTEN 0 128 *:22 *:* LISTEN 0 128 127.0.0.1:631 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 80 :::3306 :::* 15、數據庫的安全初始操作,設置完之後就可以正常使用數據庫了 [root@node2 /app]#mysql_secure_installation [root@node2 /app]#mysql -uroot -p
MYSQL的特性
1、插件式存儲引擎:
也稱為“表類型”,存儲管理器有多種實現版本,功能和特性可能均略有差別;用戶可根據需要靈活選擇,Mysql5.5.5開始innoDB引擎是
MYSQL默認引擎
MyISAM ==> Aria
InnoDB ==> XtraDB
2、單進程,多線程
3、諸多擴展和新特性
4、提供了較多測試組件
5、開源
MariaDB程序
1、客戶端程序: mysql: 交互式的CLI工具 mysqldump:備份工具,基於mysql協議向mysqld發起查詢請求,並將查得的所有數據轉換成insert等寫操作語句保存文本文件中 mysqladmin:基於mysql協議管理mysqld mysqlimport:數據導入工具 2、MyISAM存儲引擎的管理工具: myisamchk:檢查MyISAM庫 myisampack:打包MyISAM表,只讀 3、服務器端程序 mysqld_safe mysqld mysqld_multi 多實例 ,示例:mysqld_multi --example
用戶賬號
mysql用戶賬號由兩部分組成:
‘USERNAME‘@‘HOST‘
說明:
HOST限制此用戶可通過哪些遠程主機連接mysql服務器
支持使用通配符:
% 匹配任意長度的任意字符
172.16.0.0/255.255.0.0 或 172.16.%.%
_ 匹配任意單個字符
Mysql 客戶端
1、mysql使用模式:
2、交互式模式:
可運行命令有兩類:
客戶端命令:
\h, help
\u,use
\s,status
\!,system
服務器端命令:
SQL語句, 需要語句結束符;
---------------------------------------------------------------------------------------------
客戶端命令:
(root@localhost) [(none)]> \s
--------------
mysql Ver 15.1 Distrib 10.2.15-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 11
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ‘‘
Using delimiter: ;
Server: MariaDB
Server version: 10.2.15-MariaDB-log MariaDB Server
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 49 sec
服務器端的命令:
05:36:22> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)
---------------------------------------------------------------------------------------------------------------
3、腳本模式:
mysql –uUSERNAME -pPASSWORD < /path/somefile.sql
mysql> source /path/from/somefile.sql
---------------------------------------------------------------------------------------------------------------
示例:
1、在shell中直接導入sql語句
[root@node2 ~]#mysql -uroot -p123456 < test.sql
Database
information_schema
mysql
performance_schema
user host password
root localhost *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
root 127.0.0.1 *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
root ::1 *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
2、在mysql的命令行中用source 來導入sql語句
(root@localhost) [(none)]> source test.sql
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | ::1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)
---------------------------------------------------------------------------------------------------------------
Mysql客戶端
mysql客戶端可用選項:
-A, --no-auto-rehash 禁止補全
-u, --user= 用戶名,默認為root
-h, --host= 服務器主機,默認為localhost
-p, --passowrd= 用戶密碼,建議使用-p,默認為空密碼
-P, --port= 服務器端口
-S, --socket= 指定連接socket文件路徑
-D, --database= 指定默認數據庫
-C, --compress 啟用壓縮
-e “SQL“ 執行SQL命令
-V, --version 顯示版本
-v --verbose 顯示詳細信息
--print-defaults 獲取程序默認使用的配置
socket地址
服務器監聽的兩種socket地址:
ip socket: 監聽在tcp的3306端口,支持遠程通信
unix sock: 監聽在sock文件上,僅支持本機通信
如:/var/lib/mysql/mysql.sock
說明:host為localhost,127.0.0.1時自動使用unix sock
執行命令
1、運行mysql命令:默認空密碼登錄
mysql>use mysql 進入mysql庫
mysql>select user(); 查看當前用戶
mysql>SELECT User,Host,Password FROM user; 查看當前數據庫中所有的用戶列表
---------------------------------------------------------------------------------------------------------------
示例:
(root@localhost) [(none)]> use mysql
Database changed
(root@localhost) [mysql]> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
(root@localhost) [mysql]> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | ::1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)
---------------------------------------------------------------------------------------------------------------
2、登錄系統:
mysql –uroot –p
---------------------------------------------------------------------------------------------------------------
示例:
[root@node2 ~]#mysql -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 10.2.15-MariaDB-log MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
(root@localhost) [(none)]>
---------------------------------------------------------------------------------------------------------------
3、客戶端命令:本地執行
mysql> help
每個命令都完×××式和簡寫格式
mysql> status 或 \s
4、服務端命令:通過mysql協議發往服務器執行並取回結果
每個命令末尾都必須使用命令結束符號,默認為分號
示例:SELECT VERSION();
服務器端配置
服務器端(mysqld):
工作特性有多種配置方式
1、命令行選項:
2、配置文件:類ini格式
集中式的配置,能夠為mysql的各應用程序提供配置信息
[mysqld]
[mysqld_safe]
[mysqld_multi]
[mysql]
[mysqldump]
[server]
[client]
格式:parameter = value
說明:_和- 相同
1,ON,TRUE意義相同, 0,OFF,FALSE意義相同
Mysql配置文件
配置文件:
後面覆蓋前面的配置文件,順序如下:
/etc/my.cnf Global選項
/etc/mysql/my.cnf Global選項
SYSCONFDIR/my.cnf Global選項
$MYSQL_HOME/my.cnf Server-specific 選項
--defaults-extra-file=path
~/.my.cnf User-specific 選項
MySQL配置
偵聽3306/tcp端口可以在綁定有一個或全部接口IP上
vim /etc/my.cnf
[mysqld]
#通常用於mysql維護時加上這條只能在本地使用
skip-networking=1
關閉網絡連接,只偵聽本地客戶端, 所有和服務器的交互都通過一個socket實現,socket的配置存放在/var/lib/mysql/mysql.sock) 可在/etc/my.cnf或者/etc/mysql/my.cnf修改
MySQL的二進制安裝方式