MySQL的二进制安装方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的二进制安装方式相关的知识,希望对你有一定的参考价值。

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、添加组和用户
  [[email protected] ~]# groupadd -r -g 306 mysql
  [[email protected] ~]# useradd -g mysql -u 306 -r mysql

    3、解压mariadb二进制包到/usr/local下去
   [[email protected] ~]# tar xf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/

    4、进入到/usr/local下面创建mysql的软连接
   [[email protected] ~]# cd /usr/local/
   [[email protected] /usr/local]# ln -s mariadb-10.2.15-linux-x86_64/ mysql

    5、修改mysql的相对应的属主和属组权限
    [[email protected] /usr/local]# chown -R root.mysql mysql/

    6、创建数据文件的存放路径,并修改所属组的权限为mysql
     [[email protected] ~]#   cd /app/
     [[email protected] /app]# mkdir mydata
     [[email protected] ]#  chown -R mysql.mysql  /app

    7、初始化数据库,指定好数据文件的存放路径和用户
       [[email protected] ]# cd /usr/local/mysql/
       [[email protected] /usr/local/mysql/]# scripts/mysql_install_db --datadir=/app/mydata --user=mysql

    8、拷贝mariadb的启动脚本到/etc/rc.d/init.d下命名为mysqld
       [[email protected] /usr/local/mysql/]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

    9、把mysqld设置为开机启动
       [[email protected] /usr/local/mysql/]# chkconfig --add mysqld

    10、创建mariadb的配置文件存放路径,并拷贝模版文件到这个目录下命名为my.cnf
      [[email protected] /usr/local/mysql/]# mkdir /etc/mysql
      [[email protected] /usr/local/mysql/]#cp support-files/my-large.cnf /etc/mysql/my.cnf

    11、配置系统环境变量,重读配置文件让它生效
      [[email protected] /usr/local/mysql/]# vim /etc/profile.d/mysql.sh
      [[email protected] /usr/local/mysql/]#export PATH=/usr/local/mysql/bin:$PATH
      [[email protected] /usr/local/mysql/]# . /etc/profile.d/mysql.sh

    12、修改mariadb的配置文件需要增加几条内容
      [[email protected] /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、启动数据库服务
      [[email protected] /usr/local/mysql/]#  service mysqld start

    14、查看mariadb的服务端口是否正常监听
            [[email protected] /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、数据库的安全初始操作,设置完之后就可以正常使用数据库了
        [[email protected] /app]#mysql_secure_installation 
        [[email protected] /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语句, 需要语句结束符;
---------------------------------------------------------------------------------------------
客户端命令: 
    ([email protected]) [(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:           [email protected]
        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语句
        [[email protected] ~]#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语句
        ([email protected]) [(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;   查看当前数据库中所有的用户列表
---------------------------------------------------------------------------------------------------------------
示例:
        ([email protected]) [(none)]> use mysql
        Database changed
        ([email protected]) [mysql]> select user();
        +----------------+
        | user()         |
        +----------------+
        | [email protected] |
        +----------------+
        1 row in set (0.00 sec)

        ([email protected]) [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
    --------------------------------------------------------------------------------------------------------------- 
    示例:
                [[email protected] ~]#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.

                ([email protected]) [(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的二进制安装方式的主要内容,如果未能解决你的问题,请参考以下文章

mysql分析源代码安装及简单调试

centos MySQL 5.5 源代码 cmake 安装

(0.2.3)Linux平台下二进制方式安装mysql

MySQL 源代码scr.rpm安装的一点注意事项

模拟生成环境的MySQL安装方法-通用二进制方式安装

Linux Centos7安装MySQL5.5(二进制方式安装)