centos 手动安装mysql8


声明:本文转载自https://my.oschina.net/polly/blog/1801189,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

插播一条广告→2021 ByteDance字节跳动内推←各城市、各方向的岗位都有,大量招人!


下载

官网太慢了,在清华镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/

二进制版

二进制版是官方提供的预先编译好的版本

下载二进制版发行包

wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.11-el7-x86_64.tar.gz 

创建用户

useradd mysql 

初始化

目录:

tar xvfz mysql-8.0.11-el7-x86_64.tar.gz cd mysql-8.0.11-el7-x86_64  ln -s $PWD /usr/local/mysql chown -R mysql:mysql /usr/local/mysql  export PATH=$PATH:/usr/local/mysql/bin  mkdir -p /var/log/mariadb chown -R mysql:mysql /var/log/mariadb  mkdir -p /var/run/mariadb touch /var/log/mariadb/mariadb.log chown -R mysql:mysql /var/run/mariadb 

数据库:

mysqld --initialize --user=mysql 
  • 注意这一行日志: 2018-04-25T08:19:15.332554Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dCa0tyVgN1&o

检查配置

vi /etc/my.cnf

检查一下 /etc/my.cnf 中配置的 datadir 跟初始化时是否一样。

[mysqld] datadir=/var/lib/mysql  [client] socket=/var/lib/mysql/mysql.sock 

默认的datadir必须改成init的目录。

默认是socket方式,因此只能如下方式登录:

mysql -uroot -p --socket=/var/lib/mysql/mysql.sock 

所以必须修改为ip方式登录,应用才可以访问。

配置服务

cp support-files/mysql.server /etc/init.d/mysqld chmod a+x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on service mysqld start 

如果报错,检查一下 /etc/my.cnf 中配置的 datadir 跟初始化时是否一样。

初始化数据表及权限

mysql_secure_installation 

编译安装

如无必要,不要考虑编译安装方式,因为编译很慢,而且一旦遇到依赖冲突,解决起来非常麻烦。

什么是必要?

  • 需要修改源码。
  • 需要将自己的插件编译进去。
  • 需要新版本,包管理器安装的版本太低。
  • 二进制版本没有新版,这个一般不太可能,官方一般源码和与编译版本一起发布。
  • 某些特别的linux发行版,没有对应的二进制分发包可用。

你想好了?那就开始了。。。。(准备3个小时)

安装依赖

yum install libaio -y yum install glibc-devel.i686 glibc-devel -y yum install gcc gcc-c++ cmake boost-devel openssl-devel ncurses-devel -y 

下载源码包

wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.11.tar.gz 

编译

tar xvfz mysql-8.0.11.tar.gz cd mysql-8.0.11  cmake . \ -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/include/boost \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/etc \ -DMYSQL_DATADIR=/mysql_data \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DEXTRA_CHARSETS=all  # 以下过程非常缓慢 make && make install 

后续的步骤和二进制差不多,只是在部分环节出现了一点问题。

创建用户

useradd mysql 

初始化

目录:

chown -R mysql:mysql /usr/local/mysql  mkdir -p /var/log/mariadb chown -R mysql:mysql /var/log/mariadb  export PATH=$PATH:/usr/local/mysql/bin  mkdir -p /var/run/mariadb touch /var/log/mariadb/mariadb.log chown -R mysql:mysql /var/run/mariadb 

数据库:

mysqld --initialize --user=mysql 
  • 初始化失败:COLLATION 'utf8mb4_0900_ai_ci' is not valid for CHARACTER SET 'utf8'

这个问题在二进制版没有遇到, 经过分析,修改配置文件:

[mysqld] character_set_server=latin1 collation_server=latin1_swedish_ci 

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html

重新初始化即可。

配置服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod a+x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on service mysqld start 

初始化数据表及权限

mysql_secure_installation 

权限问题

mysql 8 的权限管理方式改变了,以前的方式可能不是很好用了。

mysql> create role app_read; Query OK, 0 rows affected (0.03 sec)  mysql> grant all on *.* to app_read; Query OK, 0 rows affected (0.07 sec)  mysql> create user root@'%' identified by 'dCa0tyVgN1&o'; 

https://blog.csdn.net/yanzongshuai/article/details/79118472

本文发表于2018年04月26日 22:38
(c)注:本文转载自https://my.oschina.net/polly/blog/1801189,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 1041 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1