lnmp环境搭建之mysql篇

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 这是一篇关于mysql安装的博客,主要按照mysql官方手册步骤安装,并指出安装前和安装过程容易出现的问题。

本篇文章是在虚拟机上实现的,使用putty工具远程连接服务器,所以会感觉一片漆黑。。

服务器版本,使用的是最小化安装:

cat /etc/redhat-release

CentOS Linux release 7.3.1611 (Core)

 

注意:mysql5.7.18后没有my.cnf

因为Linux安装完后就会生成/etc/my.cnf文件,无论哪种方式安装前最好先把/etc/my.cnf先备份一下,这样可以避免一些麻烦:

mv /etc/my.cnf /etc/my.cnf.bak

 

mysql的官网:https://www.mysql.com/

命令索引:https://dev.mysql.com/doc/refman/5.7/en/dynindex-command.html#command-index-S

 

以下主要介绍mysql的源码、二进制源码、yum三种安装方法。使用yum安装时最简单的方法,所以我们就从最简单的开始吧。

 

yum安装:

这是官网给出的安装步骤:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

1.       添加mysql yum存储库

因为yum存储库列表中默认是没有mysql的,所以要先官网下载mysql npm包更新yum库,注意这个npm包只是添加yum库的mysql列表,相当于是添加几条链接,所以只有不到30kb的大小。

因为是最小化安装,wget命令默认是没有安装的:yum –y install wget

下载地址:https://dev.mysql.com/downloads/repo/yum/

wget –c https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm # 下载npm包

rpm -Uvh mysql57-community-release-el7-11.noarch.rpm # 更新yum

2.       选择版本系列

yum repolist all # 列出可用yum安装的包,enabled默认安装的包,

ca07d7d5026a33bf319e63368d6ef51eacb2f5c6

可以看到默认是安装mysql57-community/x86_64,可以是因为我已经安装过了,所以最前面还有个!号。可以切换为其他版本的,修改如下文件,如果想要安装5.6版本的,只需把enabled=0改成1,记得把5.7的改成0,不然装的还是5.7,修改完后保存退出,经过这一波操作后再运行yum repolist all就会发现有些许的变化:

vi /etc/yum.repos.d/mysql-community.repo

# Enable to use MySQL 5.6

[mysql56-community]

name=MySQL 5.6 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/

enabled=0

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

 

[mysql57-community]

name=MySQL 5.7 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/

enabled=0

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

   当然也可以使用如下命令,效果和修改mysql-community.repo文件一样:

   yum-config-manager --disable mysql57-community

   yum-config-manager --enable mysql56-community

   如果提示-bash: yum-config-manager: command not found:

   yum –y install yum-utils

3.       安装mysql

经过上面的一波操作后就可以安装了:yum -y install mysql-community-server

这里还是要说一下如果安装前没加上-y,安装过程中停下来就会有3个选项[y|d|N]y就是yesN就是no,选了no就终止操作了;d就是download,指的是仅下载,并不会安装。

4.       启动mysql服务器

service mysqld start # 启动mysql服务

service mysqld status # 查看mysql状态

service mysqld restart # 重启mysql服务

service mysqld stop # 停止mysql服务

5.       修改密码

注意:mysql默认安装了validate_password插件,因此密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为8个字符,太简单的密码就会提示:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

首次启动mysql服务后,运行:

grep 'temporary password' /var/log/mysqld.log # 查看root@localhost用户的初始密码

mysql –uroot –p # 登录mysql服务器

进去的第一件事就是修改密码了,因为不修改密码,mysql不允许你做其他事。

set password for ‘root’@’localhost’ = ‘new password’; // 5.7.6之前使用set password

或者

alter user ‘root’@’localhost’ identified by ‘new password’; // 5.7.6 之后

当然如果实在想要简单的密码可以在mysql启动时停止validate_password插件:

官方手册:https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html

/usr/sbin/mysqld --user=mysql --validate-password=0 &

启动进入mysql命令行再修改密码就没有限制了。

当然如果不知道mysql初始密码那也不用慌,还有挽救的余地:

官方手册:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

echo ‘ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';’ > /tmp/mysql-init

service mysqld stop

/usr/sbin/mysqld --user=mysql –init-file=/tmp/mysql-init &

rm –rf /tmp/mysql-init # 完事之后记得把文件删除掉

然后使用yum安装mysql就介绍这里了。

 

二进制包安装mysql

官方手册:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

下载地址:https://dev.mysql.com/downloads/mysql/

f89be007fecb3d4d4375d381d507d501f4bfc277

1.       准备工作

mv /etc/my.cnf /etc/my.cnf.bak

yum list libaio # 检查是否安装了libaio库

yum –y install libaio # 没有就安装上

2.       开始安装,按照官方手册一步步来

groupadd mysql # 新增mysql用户组

useradd -r -g mysql -s /bin/false mysql # 新增mysql用户,-r:系统用户,-g mysql:指定为mysql用户组,-s /bin/false:不让登录

cd /usr/local/ #进入目录

tar -zxf /usr/local/src/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz # 解压,注意你的目录不一定和我的一样

ln -s /usr/local/mysql-5.7.18-linux-glibc2.5-x86_64/ mysql # 创建硬链接

cd mysql # 进入mysql目录

mkdir mysql-files # 创建mysql-files

chmod 750 mysql-files/ # 给mysql-files目录加上权限

chown -R mysql . # 改变当前目录下所有文件及目录所有者为mysql

chgrp -R mysql . # 改变当前目录下所有文件及目录所属组为mysql

bin/mysqld --initialize --user=mysql # 初始化数据库,并初始化了密码,请记住此密码:x+Fg*JTgW4O_

bin/mysql_ssl_rsa_setup # 生成密匙

chown -R root . # 改变当前目录下所有文件及目录所有者为root

chown -R mysql data mysql-files # 改变data目录和mysql-files目录所有者为mysql

bin/mysqld_safe --user=mysql & # 使用mysqld_safe命令启动mysql

cp support-files/mysql.server /etc/init.d/mysql.server # 复制mysql.server到/etc/init.d目录下,以后一般都是用这个命令来启动/停止mysql服务了

6188471f5b7bda2d5a0318f6e8d136dff7c7de67

到此mysql就安装完了,而且已经启动了。接下来就可以使用刚才的初始密码登录:

bin/mysql -uroot –p # 如果还在当前目录的话

或者

/usr/local/mysql/bin/mysql -uroot –p # 使用全路径效果也完全一样

如果不想每次都写上全路径,可以吧mysql移动到/usr/local/bin/目录或者 echo  $PATH的其中一个目录下,以后就可以:

mysql –uroot -p

进入到mysql命令行操作时提示:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

就是说明需要修改密码,可以移步到上面的修改密码步骤里修改密码了。注意这里没有安装validate_password插件,所以密码多简单都可以。

/etc/init.d/mysql.server [start|stop|restart|status] # mysql的启动|停止|重启|查看状态操作


Mysql自启动

https://dev.mysql.com/doc/mysql-linuxunix-excerpt/5.7/en/using-systemd.html

也就是将mysqld添加systemd,这部分以后再补充。

二进制包安装mysql到此就介绍完了。

 

源码安装mysql

主要是使用cmake编译安装,这部分也在后面补充。


这是我的第一篇博客,有任何问题都可以指正。thx.

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
关系型数据库 MySQL Linux
linux环境搭建mysql5.7总结
linux环境搭建mysql5.7总结
63 0
|
13天前
|
SQL 关系型数据库 MySQL
MySQL环境搭建——“MySQL数据库”
MySQL环境搭建——“MySQL数据库”
|
5月前
|
Java 关系型数据库 MySQL
【Linux】jdk、tomcat、MySQL环境搭建的配置安装,Linux更改后端端口
【Linux】jdk、tomcat、MySQL环境搭建的配置安装,Linux更改后端端口
66 0
|
7月前
|
关系型数据库 MySQL PHP
PHP环境搭建(安装MySQL)
PHP环境搭建(安装MySQL)
42 0
|
9月前
|
关系型数据库 MySQL Linux
提高性能,MySQL 读写分离环境搭建(二)
提高性能,MySQL 读写分离环境搭建(二)
|
9月前
|
Ubuntu 关系型数据库 MySQL
提高性能,MySQL 读写分离环境搭建(一)
提高性能,MySQL 读写分离环境搭建(一)
|
11月前
|
存储 安全 关系型数据库
02_MySQL环境搭建
02_MySQL环境搭建
79 0
|
11月前
|
SQL 存储 关系型数据库
第02章_MySQL环境搭建(三)
第02章_MySQL环境搭建
53 0
|
11月前
|
SQL 监控 安全
第02章_MySQL环境搭建(二)
第02章_MySQL环境搭建
64 0
|
11月前
|
存储 关系型数据库 MySQL
第02章_MySQL环境搭建(一)
第02章_MySQL环境搭建
94 0