lnmp环境搭建之mysql篇

  1. 云栖社区>
  2. 博客>
  3. 正文

lnmp环境搭建之mysql篇

缘鱼畅想 2017-10-10 12:45:00 浏览1919 评论0

摘要: 这是一篇关于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.

【云栖快讯】阿里巴巴小程序繁星计划,20亿补贴第一弹云应用免费申请,限量从速!  详情请点击

网友评论