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

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

基础环境安装

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

离线环境可以不装

将下载好的文件放到/usr/local/目录下,外网环境可以输入下面第二行的wget命令在线下载安装包,没有就手动下载安装包,然后用xftp工具传到linux服务器上,mysql的版本可以自行找最新的,避免后期修复漏洞的麻烦

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  mysql       //一定要改成mysql  不要改成mysql5.7之类的,要不然初始化的时候会报错,有强迫症的话可以等到初始化完成以后再改

解压完毕后将my.cnf文件拷贝到/etc/下,如果目录下没有my-default.cnf文件,直接在/etc/下创建my.cnf文件或者看看有没有,有点话直接使用,注意文件里的路径配置是否正确

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

如果已经有my.cnf文件则将其删除掉或者覆盖掉,新版本可能没有my-default.conf文件了,可以自己创建一个/etc/my.cnf

 注意,安装目录尽量选择/分区,系统盘,运行效率更高,性能更好,如果数据量很大,data数据目录存在机械盘

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

初始化安装:(--datadir后面的路径可以改成自己的数据存储目录,注意磁盘空间)

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

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

启动mysql:

./mysqld_safe --user=mysql &

如果修改过mysql的存放路径,请用vim打开mysqld_safe文件,然后全局替换    :%s/usr\/local/mysql安装路径/g

使用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

自动化部署脚本

参考链接:MySQL最新版本 MySQL5.7.11 批量自动化一键式安装(转) - moss_tan_jun - 博客园

或者也可以用这个脚本:

#!/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;

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

参考链接:Mysql5.7的初始密码更改 - 一沙世界 - 博客园

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值