本篇文章是在虚拟机上实现的,使用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默认安装的包,
可以看到默认是安装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就是yes;N就是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/
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服务了
到此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.