1. 下载压缩包
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x86_64.tar
2. 解压到指定目录(这里我们选择/usr/local/)
tar -xf ./mysql-5.7.16-linux-glibc2.5-x86_64.tar /usr/local/
cd /usr/local
# 此处做一个软链接
ln -s /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64.tar ./mysql
cd mysql
# 创建三个文件夹
mkdir data # 用于存放数据
mkdir tmp # 临时文件
mkdir log # 日志
3. 创建用户组和用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql # 这是一个无法登陆的用户
4. 自定义一份配置文件(my.cnf)
# 默认情况下,mysql会去读取/etc/my.cnf文件,我们将自己的配置写入其中,如果/etc/my.cnf不存在就自己创建一份
[client]
#password = [your_password]
port = 3366
socket = /usr/local/mysql/tmp/mysql.sock
[mysqld]
# include conf file which maybe different between master and slave
#!include /home/xiaoju/mysql/etc/mysqld.cnf
#skip-grant-tables
optimizer_switch = index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=off,engine_condition_pushdown=on
# generic configuration options
port = 3366
socket = /usr/local/mysql/tmp/mysql.sock
pid-file = /usr/local/mysql/tmp/mysql.pid
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
tmpdir = /usr/local/mysql/tmp
# warning & error log
##error
log-warnings = 2
log-error = /usr/local/mysql/log/error.log
##slow log
slow_query_log = 1
long_query_time = 1
log_queries_not_using_indexes = 1
slow_query_log_file = /usr/local/mysql/log/slow.log
##general log
general_log = 0
general_log_file = /usr/local/mysql/log/query.log
[mysqldump]
quick
max_allowed_packet = 32M
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
5. 初始化数据库
cd /usr/local/mysql
# 修改访问权限,便于接下来的操作
chmod 750 data tmp log
chown -R mysql .
chgrp -R mysql .
bin/mysqld --initialize --user=mysql # MySQL 5.7.6 及其以后版本需要调用这条命令,与老版本不同
bin/mysql_ssl_rsa_setup
# 初始化完成后,更改文件权限
chown -R root .
chown -R mysql data tmp log
6. 安全模式启动
bin/mysqld_safe --user=mysql & # 此处需要指定以mysql用户启动
cp support-files/mysql.server /etc/init.d/mysql.server #加入开机启动
7. 登录
首次登陆需要默认密码,然而这个密码在初始化数据库的时候被写入了初始化日志,我们需要去找到这个密码
我们可以看到,密码就在其中,现在我们可以登录了
cd /usr/local/mysql
bin/mysql -u root -p
# 输入日志中的初始密码即可登录,然后mysql会提示你重置密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Mysqlpassw0rd.'); # 密码重置完成
# 如果日志中的密码无法登录,有人遇到过这个情况,可以尝试如下方式设置密码
bin/mysqladmin -u root -p
# 输入日志中密码,然后回提示你输入新密码