OS: CentOS 6.6
DB: Mysql 5.7.14
1. 下载mysql
cd /tools
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
2.创建MySQL二进制解压文件的目录
mkdir -p /opt/mysql [root@zw-test-db mysql]# cd /tools/ [root@zw-test-db tools]# ll -l mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -rw-r--r-- 1 root root 642694570 Aug 29 15:02 mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
3. 解压到 /opt/mysql 目录下
[root@zw-test-db tools]# cd /opt/mysql/ [root@zw-test-db mysql]# tar -zxvf /tools/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz [root@zw-test-db mysql]# mv mysql-5.7.14-linux-glibc2.5-x86_64/ mysql-5.7.14 [root@zw-test-db mysql]# ll drwxr-xr-x 9 7161 31415 4096 Jul 12 21:03 mysql-5.7.14
4. 创建一个软连接到 /usr/local
[root@zw-test-db mysql]# cd /usr/local/ [root@zw-test-db local]# ls bin etc games include lib lib64 libexec redis-3.2.2 sbin share src [root@zw-test-db local]# ln -s /opt/mysql/mysql-5.7.14 /usr/local/mysql [root@zw-test-db local]# ll mysql lrwxrwxrwx 1 root root 23 Aug 31 17:36 mysql -> /opt/mysql/mysql-5.7.14 [root@zw-test-db local]#
5. 创建用户
[root@zw-test-db /]# groupadd mysql [root@zw-test-db /]# useradd -M -g mysql -s /sbin/nologin -d /usr/local/mysql mysql
-s nologin 没有shell 不能登录的
6. 基于配置文件创建基本的目录
mkdir /data/mysql mkdir /data/mysql/mysql_3306 cd /data/mysql/mysql_3306/ mkdir data mkdir logs mkdir tmp chown -R mysql:mysql /data/mysql/mysql3306
7.创建/etc/my.cnf配置文件 (过程略)
8.初始化,5.7的初始化会加一个默认的密码
[root@zw-test-db mysql]# cd /usr/local/mysql/ [root@zw-test-db mysql]# ./bin/mysqld --initialize [root@zw-test-db data]# pwd /data/mysql/mysql_3306/data ### 下面是5.5, 5.6 初始化 /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql
9.查看 error日志,看有没有error
cd /data/mysql/mysql_3306/data [root@zw-test-db data]# vim error.log [root@zw-test-db data]# tail -f error.log 2016-08-31T09:44:32.394657Z 0 [Note] Giving 0 client threads a chance to die gracefully 2016-08-31T09:44:32.394680Z 0 [Note] Shutting down slave threads 2016-08-31T09:44:32.394686Z 0 [Note] Forcefully disconnecting 0 remaining clients 2016-08-31T09:44:32.415409Z 0 [Note] Binlog end 2016-08-31T09:44:32.434217Z 0 [Note] InnoDB: FTS optimize thread exiting. 2016-08-31T09:44:32.434293Z 0 [Note] InnoDB: Starting shutdown... 2016-08-31T09:44:32.534587Z 0 [Note] InnoDB: Dumping buffer pool(s) to /data/mysql/mysql_3306/data/ib_buffer_pool 2016-08-31T09:44:32.534741Z 0 [Note] InnoDB: Buffer pool(s) dump completed at 160831 17:44:32 2016-08-31T09:44:34.308784Z 0 [Note] InnoDB: Shutdown completed; log sequence number 2525428 2016-08-31T09:44:34.308945Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
10.查看初始化密码
[root@zw-test-db data]# grep password error.log
2016-08-31T09:44:21.172167Z 1 [Note] A temporary password is generated for root@localhost: 8aahkRkxfm%t
密码是: 8aahkRkxfm%t
11 创建一个启动脚本
[root@zw-test-db data]# cd /usr/local/mysql/
[root@zw-test-db mysql]# cp support-files/mysql.server /etc/init.d/mysql
cp: overwrite `/etc/init.d/mysql'? y
12.启动mysql的三种方式
方式一:
root@zw-test-db bin]# ./mysqld_safe --user=mysql & [1] 12455 [root@zw-test-db bin]# 160830 15:18:01 mysqld_safe Logging to '/usr/local/mysql/data/zw-test-db.err'. 160830 15:18:01 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
方式二:
[root@zw-test-db bin]# /etc/init.d/mysqld restart Shutting down MySQL..160830 15:18:14 mysqld_safe mysqld from pid file /usr/local/mysql/data/zw-test-db.pid ended [ OK ] Starting MySQL. [ OK ] [1]+ Done ./mysqld_safe --user=mysql
方式三:
[root@zw-test-db bin]# service mysqld restart Shutting down MySQL.. [ OK ] Starting MySQL. [ OK ] [root@zw-test-db bin]#
13. 添加环境变量
echo "export PATH=\$PATH:/usr/local/mysql/bin" >> /root/.bash_profile
source /root/.bash_profile
14. 登陆
[root@zw-test-db mysql]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.14-log Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@localhost [(none)]>show databases; --提示要修改密码 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
15.修改密码
root@localhost [(none)]>alter user user() identified by '123456'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) root@localhost [(none)]>show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
可以查看数据库了
16. 5.6版本之前需要帐号安全加固,5,7以后 test数据库都没有了
delete from mysql.user where user!='root' or host!='localhost'; --删除非root用户,登陆主机不是localhost的账号 flush privileges; alter user user() identified by '123456'; drop database test; truncate mysql.db;