• mysql


    一、mysql 3 种安装方式(Linux):

    1. 通用二进制版:    解压即用(需要手动做一些配置:如:环境变量、软连接、初始化等)
    2. rpm, yum安装: 需要下载rpm包或者yum源,进行安装
    3. 源码包:               需编译安装,速度较慢,如果要研究mysql源码,可以使用此种方式(mysql是由c写成)

    二、二进制包下载:

    1、进入mysql官网:

    1. mysql官网地址:https://www.mysql.com/
    2. mysql二进制包下载地址:https://downloads.mysql.com/archives/community/
    3.  点击下载到本地

    三、安装mysql软件:

    1、环境准备:

    1、虚拟机1台:

    1. 虚拟机软件:VMware
    2. Linux系统:centos 6.5
    3. 连接Linux工具:xshell

    2、清理历史遗留:

    1. 检查命令:rpm -qa | grep [name]        # 作用:检查是否有历史mysql,如果有需要先清理掉
      1. 实例1:
        1. [root@localhost bin]# rpm -qa | grep mysql
          mysql-community-libs-5.7.9-1.el6.x86_64
          mysql-community-client-5.7.9-1.el6.x86_64
          mysql-community-server-5.7.9-1.el6.x86_64
          mysql-community-common-5.7.9-1.el6.x86_64
    2. 删除命令:rpm -ev --nodeps [name]

      1. 示例:
        [root@localhost bin]# rpm -ev --nodeps mysql-community-client-5.7.9-1.el6.x86_64

    3、创建用户和组

    创建用户和组:

    [root@localhost ~]# useradd mysql -s /sbin/nologin
    useradd: user 'mysql' already exists

    验证是否成功:

    [root@localhost ~]# id mysql
    uid=27(mysql) gid=27(mysql) groups=27(mysql)

    4、创建相关目录:

    1、国际标准目录:

    一般地,mysql的相关目录,会创建在 /usr/local/ 下

    2、自定义目录:

    1. 软件目录: mkdir -p mysql/database 
    2. 数据目录: mkdir -p mysql/data/3306 
    3. 日志目录: mkdir -p mysql/log/3306 

    ps: 实际工作中,最好是将数据、日志、软件分别放在不同的磁盘上,自己虚拟机玩的话,可以放在同一磁盘上。

    5、设置权限:

    1. 添加权限: [root@localhost ~]# chown mysql.mysql -R mysql/data mysql/database mysql/log 
    2. 查看权限:
      [root@localhost ~]# ll mysql
      total 12
      drwxr-xr-x. 3 mysql mysql 4096 Jan 10 10:02 data
      drwxr-xr-x. 2 mysql mysql 4096 Jan 10 09:57 database
      drwxr-xr-x. 3 mysql mysql 4096 Jan 10 10:02 log

    2、上传【二进制安装包】:

    1. 二进制安装包:从mysql官网下载的二进制包,本次用的是window系统,所以,二进制包放在Windows磁盘中
    2. 上传工具:xshell  (使用sftp传输,在此就不再赘述,百度下,有很多教程可用)
    3. ps: 上传的目的文件夹:mysql/database/     【上传目录,可以视自己情况而定,只要能够找得到即可】

    3、Linux下-解压二进制包:

    [root@localhost database]# pwd
    /root/mysql/database
    [root@localhost database]# tar -xvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
    解压过程... mysql-5.7.28-linux-glibc2.12-x86_64/support-files/mysql.server mysql-5.7.28-linux-glibc2.12-x86_64/docs/INFO_BIN mysql-5.7.28-linux-glibc2.12-x86_64/docs/INFO_SRC
    解压结束... [root
    @localhost database]# [root@localhost database]# [root@localhost database]# ll total 707696 drwxr-xr-x. 9 root root 4096 Jan 10 10:32 mysql-5.7.28-linux-glibc2.12-x86_64 -rw-r--r--. 1 root root 724672294 Jan 10 10:27 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

    4、创建软链接:

    1. 命令: ln -s [源文件或目录][目标文件或目录] 
    2. 示例:
      [root@localhost database]# pwd
      /root/mysql/database
      [root@localhost database]# ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql
      [root@localhost database]# ll
      total 707696
      lrwxrwxrwx. 1 root root        35 Jan 10 10:40 mysql -> mysql-5.7.28-linux-glibc2.12-x86_64
      drwxr-xr-x. 9 root root      4096 Jan 10 10:32 mysql-5.7.28-linux-glibc2.12-x86_64
      -rw-r--r--. 1 root root 724672294 Jan 10 10:27 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
      [root@localhost database]# 

    5、设置环境变量:

    1. vim 到 环境变量文件: [root@localhost mysql]# vim /etc/profile 
    2. 在文件末尾添加:
      export PATH=/root/mysql/database/mysql/bin:$PATH
    3. 保存更改后退出  :wq 
    4. 生效配置: source /etc/profile 
    5. 检查mysql环境变量,设置是否成功:
      [root@localhost mysql]# mysql -V
      mysql  Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using  EditLine wrapper

      出现上述情况,表示环境变量设置成功

     四、初始化系统库表

    1、初始化系统库表

    1. 初始化命令:
      mysqld --initialize-insecure --user=mysql --basedir=/root/mysql/database/mysql --datadir=/root/mysql/data/3306
      1. 可能会遇到的报错:
        1. 用户权限问题:
          [root@localhost mysql]# mysqld --initialize-insecure --user=mysql --basedir=/root/mysql/database/mysql --datadir=/root/mysql/data/3306
          mysqld: Can't change dir to '/root/mysql/data/3306/' (Errcode: 13 - Permission denied)
          2021-01-10T21:17:58.027014Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
          2021-01-10T21:17:58.028906Z 0 [ERROR] failed to set datadir to /root/mysql/data/3306/
          2021-01-10T21:17:58.028950Z 0 [ERROR] Aborting

          出现此问题的根本原因:--user=mysql, mysql用户没有进入 /root/mysql/data/3306的权限。

          1. 解决方案:
            1. 将--user=mysql 改为 --user=root
            2. 在【环境准备步骤中】,将【datadir】的文件夹设置在根目录下/data/3306 ,并将该文件夹的属组设置为mysql ,具体【用户和组】,详见上述:【环境准备】-》【创建用户和组】和【添加权限】
        2. 依赖包缺失问题:
          1. 解决方案: yum install -y libaio-devel
        3. 用于存储数据的文件夹路径下,已经有文件存在:

           解决方案:

          1. 删除指定文件夹下的多余文件:
            rm -rf /root/mysql/data/3306/
      2. 执行成功:
        [root@localhost mysql]# mysqld --initialize-insecure --user=root --basedir=/root/mysql/database/mysql --datadir=/root/mysql/data/3306
        2021-01-10T21:21:18.198822Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
        2021-01-10T21:21:18.537972Z 0 [Warning] InnoDB: New log files created, LSN=45790
        2021-01-10T21:21:18.587303Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
        2021-01-10T21:21:18.667374Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: c771aff5-5389-11eb-8d05-000c29f04ed2.
        2021-01-10T21:21:18.668309Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
        2021-01-10T21:21:19.012897Z 0 [Warning] CA certificate ca.pem is self signed.
        2021-01-10T21:21:19.096820Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
    2. 扩展:

      1. mysql-5.6 版本 初始化方法:

        /root/mysql/database/mysql/scripts/mysql_install_db --initialize-insecure --user=mysql --basedir=/root/mysql/database/mysql --datadir=/root/mysql/data/3306

        PS:

      2. mysql-5.7 版本 初始化方法:
        1. 方法1: mysqld --initialize --user=mysql --basedir=/root/mysql/database/mysql --datadir=/root/mysql/data/3306
          1. 使用mysql前,重置密码:
        2. 方法2:mysqld --initialize-insecure --user=mysql --basedir=/root/mysql/database/mysql --datadir=/root/mysql/data/3306
          1. 不会有临时密码,可以直接登录mysql

    2、基础配置文件设置:

    cat > /etc/my.cnf <<EOF
    [mysqld]
    user=root
    basedir=/root/mysql/database/mysql
    datadir=/root/mysql/data/3306
    server_id=6
    port=3306
    socket=/tmp/mysql.sock
    [mysql]
    socket=/tmp/mysql.sock
    EOF

    3、准备mysql启动脚本:

    1. cd 到指定目录:

      [root@localhost mysql]# cd /root/mysql/database/mysql/support-files/
    2. 拷贝mysql的启动脚本 至 Linux系统软件管理目录中:
      [root@localhost support-files]# cp mysql.server /etc/init.d/mysqld
    3. 修改 mysqld :

      修改内容:
      basedir=/opt/module/mysql/software/mysql_5.7.28
      datadir=/opt/module/mysql/data/3306

    4、启动mysql服务:

    1.  centos6 and centos7 通用的启动mysql服务的方法:
      [root@localhost support-files]# service mysqld start
      Starting MySQL.Logging to '/root/mysql/data/3306/localhost.localdomain.err'.
      . SUCCESS! 

    5、登录mysql并设置用户名及密码:

    1. 登录mysql:
      [root@localhost support-files]# mysql
      Welcome to the MySQL monitor.  Commands end with ; or g.
      Your MySQL connection id is 4
      Server version: 5.7.28 MySQL Community Server (GPL)
      
      Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
      
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      
      Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
      
      mysql> 
    2. 设置root用户的密码:
      mysql> set password for 'root'@'localhost'=password('root');
      Query OK, 0 rows affected, 1 warning (0.00 sec)
    3. 添加新用户及密码:
      mysql> GRANT SELECT ON*.* TO 'test3'@localhost IDENTIFIED BY 'test3';
      Query OK, 0 rows affected, 1 warning (0.00 sec)

      实际演示案例:

      mysql> GRANT SELECT ON*.* TO 'test3'@localhost IDENTIFIED BY 'test3';
      Query OK, 0 rows affected, 1 warning (0.00 sec)
      
      mysql> exit
      Bye
      [root@localhost support-files]# mysql -utest3 -p
      Enter password: 
      Welcome to the MySQL monitor.  Commands end with ; or g.
      Your MySQL connection id is 7
      Server version: 5.7.28 MySQL Community Server (GPL)
      
      Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
      
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      
      Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
      
      mysql> show databases;
      +--------------------+
      | Database           |
      +--------------------+
      | information_schema |
      | mysql              |
      | performance_schema |
      | sys                |
      +--------------------+
      4 rows in set (0.01 sec)
  • 相关阅读:
    keepalived+httpd 高可用
    网卡绑定配置文件
    elk安装
    mysql数据库
    sed
    kvm
    日常巡检
    haproxy
    (6)PY_(study)
    (5)PY_(study)
  • 原文地址:https://www.cnblogs.com/gengyufei/p/14259010.html
Copyright © 2020-2023  润新知