linux下mysql5.7数据库二进制包安装方法并附带自动部署脚本

看过很多相关文档,最后决定整合一下,省去编译过程,节省时间,不用安装boost库!

基础环境安装

#yum install libaio-devel ncurses-devel cmake gcc gcc-c++ bison -y

复制的话请把左边的#号去掉

二进制包下载链接:

64位:http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

32位:http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-i686_64.tar.gz

可以用xftp工具在windows上下载好后传到linux服务器上,也可以直接在链接前面加wget在linux服务器上下载(这种方式比较方便)

将下载好的文件放到/usr/local/目录下

#cd /usr/local/ 
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
#tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
#mv mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz  mysql       //一定要改成mysql  不要改成mysql5.7之类的,要不然初始化的时候会报错,有强迫症的话可以等到初始化完成以后再改

解压完毕后

#cd /usr/local/mysql/support-files
#cp my-default.cnf /etc/my.cnf

如果已经有my.cnf文件则将其删除掉或者覆盖掉

#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

创建连接数据库的专门用户

#groupadd mysql
#useradd -r -g mysql mysql

然后给mysql的普通用户设置一个密码:

#passwd mysql

给目录/usr/local/mysql 更改拥有者

#chown -R mysql:mysql /usr/local/mysql/
#cd /usr/local/mysql/bin

初始化安装

#./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

注意这个时候密码会打印出来,最后一行,保存一下,这个是root用户的初始数据库密码

启动mysql:

#./mysqld_safe --user=mysql &

使用ps -ef |grep mysql 来查看进程是否启动

mysql服务启动/停止/重启:

#/etc/init.d/mysql start/stop/restart

配置环境变量

#vi /etc/profile
在最底部加上下面这个
export PATH=$JAVA_HOME/bin:/usr/local/mysql/bin:$PATH
#source /etc/profile

登陆客户端

#./mysql -uroot -p

输入之前初始化安装时打印的那个临时密码

修改密码:

>set password=password('新密码');
>flush privileges;

设置远程访问
关闭防火墙

centos7:#systemctl stop firewalld.service
centos6:#service iptables stop

觉得不合适的话可以开放3306端口

#/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
#/etc/rc.d/init.d/iptables save

授权:

>grant all privileges on *.* to 远程访问用户名@'%' identified by '用户密码';
>select host,user from user; 【多出1条远程登录用户记录】
>flush privileges;(刷新)

授权的时候注意,在任何时候,授予远程访问权限都是一件很危险的事,如果是云服务器,开放了外网访问,那就很危险了,轻易不要开通远程访问权限

设置开机自启动

#chkconfig --add mysql 
#chkconfig mysql on

自动化部署脚本

参考链接:https://www.cnblogs.com/moss_tan_jun/p/5746023.html

或者也可以用这个脚本:

#!/bin/bash
# install the basie lib 
yum install cmake -y
groupadd mysql
useradd -g mysql mysql  
autoreconf --force --install
libtoolize --automake --force
automake --force --add-missing
yum install -y libtoolize
yum install gcc gcc-c++ -y
yum install -y ncurses-devel.x86_64
yum install -y cmake.x86_64
yum install -y libaio.x86_64
yum install -y bison.x86_64
yum install -y gcc-c++.x86_64
yum install make -y
yum install wget -y 


wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 
tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local
mv /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64 mysql
cp -f /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp -f /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chown -R mysql:mysql /usr/local/mysql/ 
chkconfig --add mysql
chkconfig mysql on
echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
source /etc/profile
ln -s /usr/local/mysql mysql
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
/usr/local/mysql/bin/mysqld_safe --user=mysql &

这个脚本可以直接运行

会直接安装好并启动mysql5.7的服务,但是安装好以后登陆mysql会报错

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

因为我写的脚本在初始化安装时没有记录初始密码,这个问题很容易处理,启动mysql时只要跳过mysql的密码登陆验证后修改密码就行了

方法:

先停止mysql的服务

#/etc/init.d/mysql stop

然后在/etc/my.cnf里面加入skip-grant-tables

#echo "skip-grant-tables">>/etc/my.cnf

然后启动服务

#/etc/init.d/mysql start

这时输入mysql 就可以进去了

修改root密码

>update mysql.user set authentication_string=password('123456') where User='root' and Host='localhost';
>flush privileges;

如果报错注意看提示,可能是密码太过简单

参考链接:https://www.cnblogs.com/yoyotl/p/6387207.html

接下来就是把/etc/my.cnf里的skip-grant-tables删除掉了,这个很重要,删除掉以后记得重启Mysql服务

好了,到这里mysql5.7就自动安装完了,注意设置服务开机启动,做软链接,将/usr/local/mysql/bin环境变量加入到/etc/profile,脚本只是随便写的一个,会脚本的大神可以自己优化,安装过程中碰到啥问题就百度,有啥不懂的也可以问我

猜你喜欢

转载自blog.csdn.net/Ysssssssssssssss/article/details/79408885