linux7编译安装mysql8.0

    科技2022-07-10  129

    系统版本信息

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)

    安装依赖包

    [root@localhost ~]# yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel [root@localhost ~]# rpm -qa |grep libaio libaio-devel-0.3.109-13.el7.x86_64 libaio-0.3.109-13.el7.x86_64

    #要是没有安装就要安装一下

    [root@localhost ~]# yum install libaio libaio-devel

    下载源码包

    [root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.12.tar.gz

    创建用户和建立数据目录并赋予用户目录权限

    [root@localhost ~]# useradd -r -g mysql -s /sbin/nologin mysql [root@localhost ~]# mkdir -p /usr/local/mysql [root@localhost ~]# mkdir -p /usr/local/mysql/data [root@localhost ~]# chown -R mysql.mysql /usr/local/mysql/* [root@localhost ~]# chmod -R 755 /usr/local/mysql/

    解压并安装

    [root@localhost ~]# tar -xf mysql-boost-8.0.12.tar.gz

    配置

    [root@localhost ~]# cd mysql-8.0.12 [root@localhost mysql-8.0.12]#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DMYSQL_TCP_PORT=3306 \ -DWITH_BOOST=~/mysql-8.0.12/boost \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DENABLED_LOCAL_INFILE=ON \ -DWITH_INNODB_MEMCACHED=ON \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1

    配置参数说明: CMAKE_INSTALL_PREFIX :指定基础安装目录 MYSQL_DATADIR :指定数据目录 SYSCONFDIR=/etc :指定配置文件扫描目录 MYSQL_TCP_PORT :指定端口号 WITH_BOOST :指定boost所在目录 DEFAULT_CHARSET :指定默认字符集 DEFAULT_COLLATION :指定默认排序规则 ENABLED_LOCAL_INFILE=ON :是否为load data infile启用local WITH_INNODB_MEMCACHED=ON :是否生成memcached共享库

    编译&安装

    [root@localhost mysql-8.0.12]#make && make install

    需要一点时间(看配置,配置低需要的时间比较长)

    配置环境变量

    echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile source /etc/profile

    初始化数据库

    [root@localhost mysql-8.0.12]#mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

    建立配置文件

    cat > /etc/my.cnf <<EOF [client] port=3306 socket=/tmp/mysql.sock default-character-set=utf8 #user=root #password=123 [mysqld] server-id=1 #skip-grant-tables port=3306 user=mysql max_connections=200 socket=/tmp/mysql.sock basedir=/usr/local/mysql datadir=/usr/local/mysql/data pid-file=/usr/local/mysql/data/mysql.pid init-connect='SET NAMES utf8' character-set-server=utf8 default-storage-engine=INNODB log_error=/usr/local/mysql/data/mysql-error.log slow_query_log_file=/usr/local/mysql/data/mysql-slow.log [mysqldump] quick max_allowed_packet=16M EOF

    配置启动脚本

    [root@localhost mysql-8.0.12]# cp ./support-files/mysql.server /etc/init.d/mysqld [root@localhost mysql-8.0.12]# vim /etc/init.d/mysqld 修改 安装路径 basedir=/usr/local/mysql 数据库文件存放路径 datadir=/usr/local/mysql/data

    修改启动脚本权限

    [root@localhost mysql-8.0.12]# chmod +x /etc/init.d/mysqld

    启动服务

    [root@localhost mysql-8.0.12]# /etc/init.d/mysqld start Starting MySQL.Logging to '/usr/local/mysql/data/mysql-error.log'. SUCCESS!

    centos7系统自启动脚本(可以忽略)

    cat /usr/lib/systemd/system/mysqld.service [Unit] Description=mysql server daemon Documentation=man:mysql(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql Type=notify TimeoutSec=0 PermissionsStartOnly=true ExecStart=/usr/local/mysql/bin/mysqld $MYSQLD_OPTS LimitNOFILE = 10000 Restart=always RestartPreventExitStatus=1 Environment=MYSQLD_PARENT_PID=1 PrivateTmp=false 启动MySQL systemctl start mysqld.service

    修改root密码:使用WITH指定认证方式

    [root@localhost mysql-8.0.12]#mysql -uroot ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

    ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH caching_sha2_password BY ‘你的密码’;

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY'123456'; Query OK, 0 rows affected (0.03 sec)

    mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH caching_sha2_password BY ‘123456’; Query OK, 0 rows affected (0.04 sec)

    刷新权限

    mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

    查看密码字段和加密方式

    mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select host,user,authentication_string,plugin from user;

    安装完毕

    Processed: 0.015, SQL: 8