官方文档部署MySQL 5.7
将mysql二进制包移动到/usr/local目录下
显示目录颜色
[root@ceshiji ~]# apt-get install lrzsz
[root@ceshiji /]# tail /etc/profile ###显示目录颜色
export LS_OPTIONS='--color=auto'
eval `dircolors`
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
MySQL安装包
[root@mysql-193 local]# ll -h mysql-5.7.17-linux-glibc2.5-x86_64.tar
-rw-r--r-- 1 zhangya zhangya 652M 6月 27 23:19 mysql-5.7.17-linux-glibc2.5-x86_64.tar
MySQL源码包下载
链接:http://pan.baidu.com/s/1i5Fvnal 密码:zkwz
解压
[root@ceshiji local]# tar xf mysql-5.7.17-linux-glibc2.5-x86_64.tar
安装依赖
[root@mysql-193 local]# apt-cache search libaio #查找依赖包信息
[root@mysql-193 local]# apt-get install libaio1 # install library #安装依赖包
添加mysql组
[root@mysql-193 local]# groupadd mysql
添加mysql用户并且禁止登录
[root@mysql-193 local]# useradd -r -g mysql -s /bin/false mysql
创建数据库目录
[root@mysql-193 mysql]# mkdir -p /data/mysql_data
解压mysql安装包
[root@mysql-193 local]# cd /usr/local
root@ceshiji local]# tar vxf mysql-5.7.17-linux-glibc2.5-x86_64.tar
[root@ceshiji local]# rm mysql-5.7.17-linux-glibc2.5-x86_64.tar mysql-test-5.7.17-linux-glibc2.5-x86_64.tar.gz
[root@mysql-193 local]# tar zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
创建软链接
[root@mysql-193 local]# ln -s /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64 mysql
查看创建结果
[root@mysql-193 local]# ll mysql
lrwxrwxrwx 1 root staff 45 6月 27 23:58 mysql -> /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64
修改mysql目录的权限以及所属用户及组属性相关(官网)
[root@mysql-193 local]# cd mysql
[root@mysql-193 mysql]# mkdir mysql-files
[root@mysql-193 mysql]# chmod 750 mysql-files
[root@mysql-193 mysql]# chown -R mysql . ##只修改文件属主
[root@mysql-193 mysql]# chgrp -R mysql . #修改文件属组
初始化数据库
#注意! 5.7版本以后的初始化命令和5.6有区别
#使用老命令初始化的报错内容如
[root@mysql-193 mysql]# bin/mysql_install_db --user=mysql
2017-06-28 00:10:11 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2017-06-28 00:10:11 [ERROR] The data directory needs to be specified.
#使用新的初始化命令
[root@mysql-193 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data
注意, 这里最后一行最后面会提示一个字符串,这个是mysql5.7以后的安全策略,会生成一个root的随机密码
......
2017-06-27T16:14:05.150862Z 1 [Note] A temporary password is generated for root@localhost: 1Diwj2r(pN-k
把目录所属者权限修改回root
[root@mysql-193 mysql]# chown -R root .
修改数据库目录的所属者为mysql
[root@mysql-193 mysql]# chown -R mysql /data/
[root@mysql-193 mysql]# ll /data/
drwxr-xr-x 5 mysql mysql 4096 6月 28 00:14 mysql_data
拷贝复制配置文件到/etc/my.cnf
[root@mysql-193 mysql]# grep -v "^#" support-files/my-default.cnf >/data/mysql_data/my.cnf
修改配置文件
[root@mysql-193 mysql]# vim /data/mysql_data/my.cnf
[root@mysql-193 mysql]# cat /data/mysql_data/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql_data
port = 3306
socket = /tmp/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
启动mysql服务
[root@mysql-193 mysql]# bin/mysqld_safe --defaults-file=/data/mysql_data/my.cnf --user=mysql --pid-file=/data/mysql_data/mysqld_safe.pid --log-error=/data/mysql_data/mysql.err.log &
查看进程
[root@mysql-193 ~]# ps -ef|grep mysqld
root 3113 775 0 00:59 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql_data/my.cnf --user=mysql --pid-file=/data/mysql_data/mysqld_safe.pid --log-error=/data/mysql_data/mysql.err.log
mysql 3287 3113 0 00:59 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql_data/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql_data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql_data/mysql.err.log --pid-file=/data/mysql_data/mysqld_safe.pid --socket=/tmp/mysql.sock --port=3306
root 3333 1275 0 01:00 pts/1 00:00:00 grep mysqld
将mysql命令加入环境变量
[root@mysql-193 ~]# tail -2 /etc/profile
PATH=$PATH:/usr/local/mysql:/usr/local/mysql/bin
[root@mysql-193 ~]# source /etc/profile
再次输入mysql发现已经可以补全了
[root@mysql-193 ~]# mysql
登录数据库
[root@mysql-193 ~]# mysql -uroot -p'1Diwj2r(pN-k'
这时使用命令会提示需要修改密码,所以这里修改数据库默认密码
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> alter user 'root'@'localhost' identified by 'goumin123';
Query OK, 0 rows affected (0.00 sec)
mysql>exit
使用新密码登录
[root@mysql-193 ~]# mysql -uroot -p'goumin123'
mysql>
脚本文件一键安装
[root@ceshiji ~]# cat 101.sh
#下载依赖包
apt-get install libaio1
apt-get install lrzsz
#添加mysql用户和组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
#创建mysql数据目录
mkdir -p /data/mysql_data
#解压mysqltar包
cd /usr/local
tar xf mysql-5.7.17-linux-glibc2.5-x86_64.tar
rm -f mysql-5.7.17-linux-glibc2.5-x86_64.tar mysql-test-5.7.17-linux-glibc2.5-x86_64.tar.gz
tar zxf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
#创建软连接
ln -s /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64 mysql
#修改mysql目录权限和创建文件
cd /usr/local
cd mysql
mkdir mysql-files
chmod 750 mysql-files
chown -R mysql:mysql .
#初始化mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data >/tmp/mima.txt 2>&1
#修改mysql软件目录权限
chown -R root.staff /usr/local/mysql
#修改mysql数据目录权限
chown -R mysql.mysql /data/
#拷贝配置文件
cd /usr/local
cd mysql
grep -v "^#" support-files/my-default.cnf >/data/mysql_data/my.cnf
#修改配置文件
cat>/data/mysql_data/my.cnf<> /etc/profile
#启动mysql服务
bin/mysqld_safe --defaults-file=/data/mysql_data/my.cnf --user=mysql --pid-file=/data/mysql_data/mysqld_safe.pid --log-error=/data/mysql_data/mysql.err.log &
执行步骤
1. 将mysql安装包放到/usr/local中
2. 执行安装启动脚本
3. 执行source生效全局环境变量命令
4. 进入/tmp目录查看密码
5. 执行命令修改密码
mysql -uroot -pPASSWORD --connect-expired-password -e "alter user 'root'@'localhost' identified by 'goumin123';"
6. 登录数据库验证
mysql -uroot -pgoumin123