|
|
|
|
移动端

Linux下MySQL 8.0安装配置

本文介绍在Linux系统下对数据库MySQL 8.0得安装配置,快来看看吧!

作者:佚名来源:马哥Linux运维|2020-09-25 17:10

1、编译安装MySQL8.0

版本信息

  1. #cat /etc/redhat-release 
  2. CentOS Linux release 7.5.1804 (Core) 

安装依赖包

  1. yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel 
  2. rpm -qa |grep libaio 
  3. yum install libaio libaio-devel 

下载源码包

  1. wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.12.tar.gz 

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

  1. groupadd mysql 
  2. useradd -r -g mysql -s /sbin/nologin mysql 
  3. mkdir -p /usr/local/mysql 
  4. mkdir -p /data/mysql 
  5. chown -R mysql.mysql /usr/local/mysql 
  6. chown -R mysql.mysql /data/mysql 
  7. chmod -R 755 /usr/local/mysql/ 
  8. chmod -R 755 /data/mysql/ 

解压并开始安装

  1. tar -zxf mysql-boost-8.0.12.tar.gz 

配置

  1. cd mysql-8.0.12 
  2. cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 
  3. -DMYSQL_DATADIR=/data/mysql \ 
  4. -DSYSCONFDIR=/etc \ 
  5. -DMYSQL_TCP_PORT=3306 \ 
  6. -DWITH_BOOST=~/mysql-8.0.12/boost \ 
  7. -DDEFAULT_CHARSET=utf8 \ 
  8. -DDEFAULT_COLLATION=utf8_general_ci \ 
  9. -DENABLED_LOCAL_INFILE=ON \ 
  10. -DWITH_INNODB_MEMCACHED=ON \ 
  11. -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 
  12. -DWITH_FEDERATED_STORAGE_ENGINE=1 \ 
  13. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ 
  14. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ 
  15. -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ 
  16. -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共享库

编译&安装

  1. make && make install 

初始化数据库

  1. mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql 

建立配置文件

  1. cat > /etc/my.cnf <<EOF 
  2. [client] 
  3. port=3306 
  4. socket=/tmp/mysql.sock 
  5. default-character-set=utf8 
  6. #user=root 
  7. #password=123 
  8. [mysqld] 
  9. server-id=1 
  10. #skip-grant-tables 
  11. port=3306 
  12. user=mysql 
  13. max_connections=200 
  14. socket=/tmp/mysql.sock 
  15. basedir=/usr/local/mysql 
  16. datadir=/data/mysql 
  17. pid-file=/data/mysql/mysql.pid 
  18. init-connect='SET NAMES utf8' 
  19. character-set-server=utf8 
  20. default-storage-engine=INNODB 
  21. log_error=/data/mysql/mysql-error.log 
  22. slow_query_log_file=/data/mysql/mysql-slow.log 
  23. [mysqldump] 
  24. quick 
  25. max_allowed_packet=16M 
  26. EOF 

配置环境变量

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

配置启动脚本

  1. cp ../mysql-8.0.12/support-files/mysql.server /etc/init.d/mysqld 
  2. vim /etc/init.d/mysqld 
  3. chmod +x /etc/init.d/mysqld 
  4. /etc/init.d/mysqld start 

centos7系统自启动脚本

  1. cat /usr/lib/systemd/system/mysqld.service 
  2. [Unit] 
  3. Description=mysql server daemon 
  4. Documentation=man:mysql(8) 
  5. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html 
  6. After=network.target 
  7. After=syslog.target 
  8. [Install] 
  9. WantedBy=multi-user.target 
  10. [Service] 
  11. User=mysql 
  12. Group=mysql 
  13. Type=notify 
  14. TimeoutSec=0 
  15. PermissionsStartOnly=true 
  16. ExecStart=/usr/local/mysql/bin/mysqld $MYSQLD_OPTS 
  17. LimitNOFILE = 10000 
  18. Restart=always 
  19. RestartPreventExitStatus=1 
  20. Environment=MYSQLD_PARENT_PID=1 
  21. PrivateTmp=false 

启动MySQL

  1. systemctl start mysqld.service 

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

  1. mysql -uroot 
  2. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'
  3. ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '你的密码'

查看密码字段和加密方式

  1. select host, user, authentication_string, plugin from user

2、yum存储库安装MySQL

  1. wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm 
  2. yum localinstall mysql80-community-release-el7-1.noarch.rpm 
  3. yum repolist enabled|grep "mysql.*-community.*" 
  4. yum repolist all|grep mysql 
  5. yum install mysql-community-server 
  6. systemctl enable mysqld 
  7. systemctl start mysqld 
  8. netstat -lntup|grep 3306 

查看随机生成的密码

  1. grep 'temporary password' /var/log/mysqld.log
  2. mysql -uroot -p 

修改密码,密码必须要由大小写字母、数字和特性字符组成

  1. alter user 'root'@'localhost' identified by 'PJY@123.com';
  2. select version();  

【编辑推荐】

  1. 停摆一年后,Linux Journal宣布再次归来
  2. Edge for Linux开发者预览将至 WSL子系统可运行带GUI的Linux应用程序
  3. Linux系统编程—信号量
  4. 低调的 Linux 文件系统家族
  5. Linux基金会开源软件大学技术公开课上线,实战讲解Kubernetes 1.19
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

16人订阅学习

数据中心和VPDN网络建设案例

数据中心和VPDN网络建设案例

漫画+案例
共20章 | 捷哥CCIE

172人订阅学习

搭建数据中心实验Lab

搭建数据中心实验Lab

实验平台Datacenter
共5章 | ITGO(老曾)

111人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微