1. 程式人生 > >MySQL的二進制安裝方式

MySQL的二進制安裝方式

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的二進制安裝方式