Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >centos 手动安装mysql8

centos 手动安装mysql8

作者头像
pollyduan
发布于 2019-11-04 07:01:35
发布于 2019-11-04 07:01:35
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

下载

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

二进制版

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

下载二进制版发行包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.11-el7-x86_64.tar.gz

创建用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useradd mysql

初始化

目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 跟初始化时是否一样。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[mysqld]
datadir=/var/lib/mysql

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

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

默认客户端是 /var/lib/mysql.sock方式,因此只能如下方式登录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -uroot -p --socket=/var/lib/mysql/mysql.sock

所以必须修改默认的客户端访问时使用自定义的sock,应用才可以访问。

配置服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 跟初始化时是否一样。

初始化数据表及权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql_secure_installation

编译安装

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

什么是必要?

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

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

安装依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

下载源码包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.11.tar.gz

编译

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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


# 以下过程非常缓慢
make && make install

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

创建用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useradd mysql

初始化

目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

数据库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysqld --initialize --user=mysql

在这里我遇到了一个问题:

  • 初始化失败:COLLATION 'utf8mb4_0900_ai_ci' is not valid for CHARACTER SET 'utf8'

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[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

重新初始化即可。

经过测试修改为如下也可以:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
character-set-server = utf8
collation-server = utf8_general_ci

这样更接近实际情况,不过这个所谓mysql8 新特性的字符集"utf8mb4_0900_ai_ci" 为什么就报错呢?

推测 utf8mb4_0900_ai_ci 对应的字符集不是 utf8,而是 utf8mb4,因此最初使用 -DDEFAULT_CHARSET=utf8 参数编译,与mysql8默认使用 utf8mb4_0900_ai_ci 作为 collation字符集是冲突的。

  • 我最初测试的时候贱兮兮的添加了一个cmake选项:-DDEFAULT_CHARSET=utf8,他正是罪魁祸首。

因此,要么修改默认字符集为 utf8mb4 让它自适应:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-DDEFAULT_CHARSET=utf8mb4 \

要么完整的配置这两个字符集为匹配的关联字符集:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \

配置服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

初始化数据表及权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql_secure_installation

编译失败了怎么办?

首先找到原因,或者线索,安装需要的依赖,或者修改需要的环境。

清理现场:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
make clean
rm -f CMakeCache.txt

重新来过。

权限问题

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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';

彩蛋

如果你只是想看一下mysql8是个什么鬼,可以用docker启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -de MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 --name mysql mysql:8.0.11

测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker exec -ti mysql mysql -uroot -p

密码 123456 ,几分钟的事,砖头扔过来。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Keras深度神经网络训练IMDB情感分类的四种方法
欢迎光临我的博客:https://gaussic.github.io/2017/03/03/imdb-sentiment-classification/
Gaussic
2018/08/17
2.9K0
Keras深度神经网络训练IMDB情感分类的四种方法
[Python人工智能] 二十.基于Keras+RNN的文本分类vs基于传统机器学习的文本分类
从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了循环神经网络RNN的原理知识,并采用Keras实现手写数字识别的RNN分类案例及可视化呈现。这篇文章作者将带领大家用Keras实现RNN和LSTM的文本分类算法,并与传统的机器学习分类算法进行对比实验。基础性文章,希望对您有所帮助!同时,如果文章中存在错误或不足之处,也欢迎与我探讨,作者也是初学者,非常希望您的交流能促进共同成长。感谢参考文献中基基伟老师、知乎老师们的文章,共勉~
Eastmount
2023/02/28
1.4K0
[Python人工智能] 二十.基于Keras+RNN的文本分类vs基于传统机器学习的文本分类
基于keras的双层LSTM网络和双向LSTM网络
基于keras的双层LSTM网络和双向LSTM网络中,都会用到 LSTM层,主要参数如下:
全栈程序员站长
2022/07/05
1.5K0
基于keras的双层LSTM网络和双向LSTM网络
用Keras通过Python进行卷积神经网络的手写数字识别
图像识别是深度学习技术的一个普遍具有的功能。
青橙.
2018/02/07
6K0
用Keras通过Python进行卷积神经网络的手写数字识别
[深度应用]·Keras实现Self-Attention文本分类(机器如何读懂人心)
笔者在[深度概念]·Attention机制概念学习笔记博文中,讲解了Attention机制的概念与技术细节,本篇内容配合讲解,使用Keras实现Self-Attention文本分类,来让大家更加深入理解Attention机制。
小宋是呢
2019/06/27
2.5K0
[深度应用]·Keras实现Self-Attention文本分类(机器如何读懂人心)
Keras文本分类实战(上)
很多时候,人们在网上晒各种东西、抒发情感。个体的情感分析可能没有多大用处,但对大多数人的情感进行分析,就能得到比较有趣的结果。想象一下,当一个热点新闻事件出现后,你可以通过分析大多数人的留言感知舆情,了解网络平台中人们的心情。本教程将会教你如何在社交平台上执行类似的分析操作。 用机器学习从文本中读取情绪称为情感分析(sentiment analysis),它是文本分类中突出的用例之一,属于自然语言处理(NLP)非常活跃的研究领域。其它应用比如,检测垃圾邮件、自动标记客户查询以及将文本分类为已定义的主题等。那么,如何做到这一点呢?
用户3578099
2019/08/15
1K0
长短期记忆神经网络(LSTM)介绍以及简单应用分析「建议收藏」
本文分为四个部分,第一部分简要介绍LSTM的应用现状;第二部分介绍LSTM的发展历史,并引出了受众多学者关注的LSTM变体——门控递归单元(GRU);第三部分介绍LSTM的基本结构,由基本循环神经网络结构引出LSTM的具体结构。第四部分,应用Keras框架提供的API,比较和分析简单循环神经网络(SRN)、LSTM和GRU在手写数字mnist数据集上的表现。
全栈程序员站长
2022/09/16
34.9K0
如何用 Python 和循环神经网络(RNN)做中文文本分类?
本文为你展示,如何使用 fasttext 词嵌入预训练模型和循环神经网络(RNN), 在 Keras 深度学习框架上对中文评论信息进行情感分类。
王树义
2018/12/17
1.9K0
如何用 Python 和循环神经网络(RNN)做中文文本分类?
Python深度学习精华笔记3:基于Keras解决多分类问题
机器学习中的路透社数据集是一个非常常用的数据集,它包含来自新闻专线的文本数据,主要用于文本分类任务。这个数据集是由路透社新闻机构提供的,包含了大量的新闻文章,共计22类分类标签。
皮大大
2023/09/09
1K0
深度学习算法中的 循环神经网络(Recurrent Neural Networks)
深度学习在近年来取得了巨大的成功,为许多领域带来了革命性的突破。而在深度学习算法中,循环神经网络(Recurrent Neural Networks,简称RNN)是一种十分重要且常用的模型。RNN在自然语言处理、语音识别、机器翻译等任务中表现出色,具有处理时序数据的能力。本文将介绍RNN的基本原理、应用领域以及一些常见的改进方法。
大盘鸡拌面
2023/09/19
7740
关于深度学习系列笔记十五(循环神经网络)
‰ 提取单词或字符的 n-gram,并将每个 n-gram 转换为一个向量。n-gram 是多个连续单词或字符的集合(n-gram 之间可重叠)。
python与大数据分析
2022/03/11
6550
关于深度学习系列笔记十五(循环神经网络)
文本挖掘(四)python电影评论情感分类模型 -- 基于keras的全连接神经网络
  使用消极、积极两类电影评论集,构建对情感分类模型,并后续用于预测。由于只有两类,因此是一个二分类模型。
forxtz
2021/04/01
1.2K0
文本挖掘(四)python电影评论情感分类模型 -- 基于keras的全连接神经网络
LSTM 08:超详细LSTM调参指南
LSTM 01:理解LSTM网络及训练方法 LSTM 02:如何为LSTM准备数据 LSTM 03:如何使用Keras编写LSTM LSTM 04:4种序列预测模型及Keras实现 LSTM 05:Keras实现多层LSTM进行序列预测 LSTM 06:Keras实现CNN-LSTM模型 LSTM 07:Keras实现Encoder-Decoder LSTM LSTM 08:超详细LSTM调参指南
全栈程序员站长
2022/09/09
7.5K0
LSTM 08:超详细LSTM调参指南
如何用 Python 和循环神经网络预测严重交通拥堵?
本文为你介绍,如何从 Waze 交通事件开放数据中,利用序列模型找到规律,进行分类预测。以便相关部门可以未雨绸缪,提前有效干预可能发生的严重拥堵。
王树义
2018/12/25
1.6K0
Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据
分类问题属于机器学习问题的类别,其中给定一组特征,任务是预测离散值。分类问题的一些常见示例是,预测肿瘤是否为癌症,或者学生是否可能通过考试。
拓端
2022/11/15
1.2K0
使用tensorflow构建一个卷积神经网络
本文是对tensforflow官方入门教程的学习和翻译,展示了创建一个基础的卷积神经网络模型来解决图像分类问题的过程。具体步骤如下
生信修炼手册
2021/07/06
8120
使用tensorflow构建一个卷积神经网络
python在Keras中使用LSTM解决序列问题
时间序列预测是指我们必须根据时间相关的输入来预测结果的问题类型。时间序列数据的典型示例是股市数据,其中股价随时间变化。
拓端
2020/09/26
3.7K0
基于Keras的imdb数据集电影评论情感二分类
二分类可能是机器学习最常解决的问题。我们将基于评论的内容将电影评论分类:正类和父类。
用户1631856
2018/08/01
4.3K1
基于Keras的imdb数据集电影评论情感二分类
卷积神经网络(猫狗分类)
数据增强是从现有的训练样本中生成更多的训练数据,方法是利用多种能够生成可信图像的随机变换来增加样本,比如对图片进行角度变换,平移等方法 目的是为了防止模型的过拟合
火星娃统计
2020/09/15
1.7K0
卷积神经网络(猫狗分类)
[Keras深度学习浅尝]实战四· Embedding实现 IMDB数据集影评文本分类
网络模型的介绍: 1,输入网络的形状为(-1,256) 2,Embedding后为(-1,256,16)网络参数为(10000,16) 3,GlobalAveragePooling1D后为(-1,16)详细介绍见此 4,Dense1后(-1,16)网络参数为w:1616 + b:116 共计272 4,Dense2后(-1,1)网络参数为w:161 + b:11 共计17个参数
小宋是呢
2019/06/27
1.3K0
[Keras深度学习浅尝]实战四· Embedding实现 IMDB数据集影评文本分类
推荐阅读
相关推荐
Keras深度神经网络训练IMDB情感分类的四种方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验