MySQL8.0 in Linux

装着尝试的,并不适用

  1. 下载安装包

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-i686.tar.gz

  2. 解压文件

    tar -zxvf mysql-8.0.11-linux-glibc2.12-i686.tar.gz

  3. 移动压缩包到usr/local目录下,并重命名文件

    mv /root/mysql-8.0.11-linux-glibc2.12-i686 /usr/local/mysql

  4. 在MySQL根目录下新建一个文件夹data,用于存放数据

    mkdir data

  5. 创建 mysql 用户组和 mysql 用户

    1
    2
    groupadd mysql
    useradd -g mysql mysql
  6. 改变 mysql 目录权限

    1
    2
    3
    4
    chown -R mysql.mysql /usr/local/mysql/
    # or
    chown -R mysql .
    chgrp -R mysql .
  7. 初始化数据库

    1
    ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

    如果出现下面问题:

    1
    2
    3
    4
    5
    6
    zsh: command not found: mysqld
    ./bin/mysqld --initialize
    ./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

    2018-04-29 17:06:30 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
    2018-04-29 17:06:30 [ERROR] Can't locate the language directory.

    则需要安装 libnuma

    1
    2
    3
    yum install libnuma
    yum -y install numactl
    yum install libaio1 libaio-dev

    出问题 找不到哦 mysql_install_db改为下面的方法

    1
    2
    3
    4
    5
    6
    cd /usr/local/mysql
    /bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/media/bear/D/DATA/

    # basedir:安装目录路径
    # datadir:数据库数据的根路径
    # initialize:生成随机密码,使用-initialize-insecure生成空密码。默认帐号root。

    结果:

    1
    2
    3
    4
    5
    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/media/bear/D/DATA/
    2018-05-30T17:25:12.910340Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) initializing of server in progress as process 7393
    2018-05-30T17:25:13.070764Z 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
    2018-05-30T17:25:57.313814Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: fsw4Ng*;iWu1
    2018-05-30T17:26:39.949727Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) initializing of server has completed
  1. mysql配置

    • mysql/support-files目录下新建文件my-default.cnf

      1
      touch my-default.cnf
    • 复制配置文件到/etc/my.cnf

      1
      cp -a ./support-files/my-default.cnf /etc/my.cnf
    • 修改my.cnf文件:vim my.cnf

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      [mysqld]                                            #服务端基本设置
      port = 3307 #MySQL监听端口
      basedir=/usr/local/mysql #使用该目录作为根目录(安装目录)
      datadir=/media/bear/D/DATA #数据文件存放的目录
      socket=/var/lib/mysql/mysql.sock #(默认)为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
      user=mysql #MySQL启动用户
      character_set_server = utf8mb4 #服务端默认编码(数据库级别)
      collation_server = utf8mb4_bin #服务端默认的比对规则,排序规则
      pid-file=/var/run/mysqld/mysqld.pid #(默认)进程文件所在目录
      log-error=/var/log/mysql/error.log #(默认)错误日志地址

      sudo cp ./my.cnf /etc/mysql/my.cnf #copy至mysql的配置文件目录
      # esc保存
      # :wq 退出
    • 创建进程文件目录

      1
      2
      mkdir /var/run/mysqld
      chown mysql /var/run/mysqld/ -R
    • 赋予日志目录的写权限

      1
      sudo chmod 757 /var/run/mysqld/
  2. 建立MySQL服务

    1
    cp -a ./support-files/mysql.server /etc/init.d/mysqld
    • 添加到系统服务

      1
      2
      3
      cp -a ./support-files/mysql.server /etc/init.d/mysqld
      chmod +x /etc/rc.d/init.d/mysqld
      chkconfig --add mysqld
    • 检查服务是否生效

      1
      chkconfig  --list mysqld
  3. 配置全局环境变量

    • 编辑 / etc/profile 文件

      1
      # vi /etc/profile
    • 在 profile 文件底部添加如下两行配置,保存后退出

      1
      2
      3
      4
      5
      PATH=/data/mysql/bin:/data/mysql/lib:$PATH
      export PATH

      # 或者使用
      echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/sbin" >> /etc/profile
    • 设置环境变量立即生效

      1
      source /etc/profile
  4. 启动MySQL服务

    1
    service mysql start
    • 查看初始密码
      1
      cat /root/.mysql_secret

    设置开机启动脚本
    :

    1
    2
    3
    4
    cd   /usr/local/mysql
    cp support-files/mysql.server /etc/init.d/mysql.server
    chkconfig mysql.server on
    service mysql.server start

    mysql.server start可能出现错误,需要注意,此时可以通过查看/var/log/mysqld.log错误日志进行对应的修改。

  5. 登录MySQL

    1
    mysql -uroot -p密码

    修改密码:

    1
    2
    SET PASSWORD FOR 'root'@localhost=PASSWORD('123456');   
    #对应的换成你自己的密码即可了。
  6. 设置可以远程登录

    1
    2
    3
    mysql>use mysql

    mysql>update user set host='%' where user='root' limit 1;
    • 刷新权限

      1
      mysql>flush privileges;
    • 然后检查3306端口是否开放

      1
      netstat -nupl|grep 3306
    • 开放3306端口

      1
      firewall -cmd --permanent --add-prot=3306/tcp
    • 重启防火墙

      1
      firewall -cmd --reload

详情参考:
https://blog.csdn.net/qq_30490125/article/details/80518412
https://blog.csdn.net/github_39533414/article/details/80144890