看过很多相关文档,最后决定整合一下,省去编译过程,节省时间,不用安装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,脚本只是随便写的一个,会脚本的大神可以自己优化,安装过程中碰到啥问题就百度,有啥不懂的也可以问我