前言
-
MySQL版本:5.7.17
-
MySQL压缩包:mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
-
操作系统:CentOS-7-x86_64
-
Windows上MySQL安装可直接使用Windows MSI Installer进行安装(安装参考教程)
下载安装包
社区版:下载地址
Product Version:5.7.10
Operating System:Linux-Generic
OS Version:x86_64bit
查看并卸载旧版本MySQL
- 查看是否已经使用rpm安装MySQL
rpm -qa|grep mysql
- 卸载rpm-mysql
rpm -e --nodeps <package name>
- 查看是否已经使用yum安装MySQL
yum list installed | grep -i mysql
- 卸载yum-mysql
yum remove <package name>
或yum erase <package name>
- 查找是否有残留文件
find / -name mysql
创建mysql用户组和mysql用户
- 创建mysql用户组
groupadd mysql
- 创建mysql用户(禁止使用mysql用户登录服务器)
useradd -r -g mysql -s /bin/false mysql
解压压缩包
以下命令需要使用root用户或者sudo命令
- 将压缩包解压到
/usr/local/
路径下(此路径可自选)
sudo tar -xzvf mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
- 重命名解压文件夹为mysql
cd /usr/local/
mv mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz mysql
- 修改mysql安装目录及其中所有文件的所有组和所有用户为mysql:mysql
chown -R mysql:mysql /usr/local/mysql
- 修改mysql文件夹的用户权限(所属用户能够读写执行,同组用户只能读写,其他用户无法使用)
chmod 750 mysql
配置及初始化MySQL
- 将
mysql/bin
目录添加至PATH
环境变量中(使用root用户或者sudo命令),便于使用mysql命令行工具
vim /etc/profile
- 在
profile
文件末尾添加以下命令,其中命令结尾为mysql安装路径下的bin文件夹路径
export PATH=$PATH:/usr/local/mysql/bin
- 重新加载
profile
文件,使用mysql命令查看是否PATH环境变量是否设置成功
source /etc/profile
mysql --version
- 将
mysql/support-files
路径下的my-default.cnf
拷贝到/etc
路径下并改名为my.cnf
,此为mysql服务器配置文件。并修改文件的所属组和所属用户。
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
chown mysql:mysql /etc/my.cnf
- mysql配置文件存在相应的加载顺序,在顺序之后的配置文件中的参数会覆盖之前配置文件中的参数,可以使用以下命令查看加载顺序,并根据实际情况选择自定义配置文件的存放位置,同时在删除mysql时要保证这些路径下的my.cnf文件已被删除,避免影响后续mysql安装使用
mysql --help | grep my.cnf
- 修改此配置文件
/etc/my.cnf
,自定义文件配置,在此提供一种简易的参考配置 - 注意: 在文件中设置参数时使用横杠
-
或下划线_
都可以识别,某些特殊参数除外,配置时最好参考对应的使用手册,查看是否有对应参数,如果设置了错误的参数会导致MySQL无法启动
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
basedir = /usr/local/mysql
# datadir = .....
datadir = /usr/local/mysql/data
# port = .....
port = 3306
# server_id = .....
server-id = 1
# socket = .....
socket = /tmp/mysql.sock
# 设置默认存储引擎
default-storage-engine=INNODB
# 设置server默认字符集(默认为latin1)
character-set-server=utf8
# 设置用户
user = mysql
# 设置pid-file路径
pid-file = /usr/local/mysql/data/mysql/mysql.pid
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 设置通用查询日志general-log和慢查询日志slow-query-log输出方式(可选FILE/TABLE/NONE/FILE,TABLE)
log-output = FILE
# 设置关闭通用日志general-log
general-log = 0
# 设置通用日志存储路径及文件名
general-log-file = /usr/local/mysql/logs/general.log
# 设置启动慢查询日志slow-query-log
slow-query-log=1
# 设置慢查询日志slow-query-log存储路径及文件名
slow-query-log-file = /usr/local/mysql/logs/slow_query_log.log
# 设置慢查询阈值
long-query-time = 10
# 设置二进制日志log-bin存储路径及文件名
log-bin = /usr/local/mysql/logs/mysql-bin
# 设置错误日志log-err存储路径及文件名
log-error = /usr/local/mysql/logs/mysql-error
- 初始化MySQL数据库,进入
mysql/bin
目录(设置PATH变量后可以直接执行)
mysqld --initialize --user=mysql
或mysqld --initialize-insecure --user=mysql
前者会为mysql的root用户随机生成明文密码,而后者不会生成密码,都可以在登录mysql之后进行密码修改
配置并启动MySQL服务
方法一:使用chkconfig工具配置mysql服务
- 复制服务文件
mysql/support-files/mysql.server
到/etc/init.d/mysql
,如果不是可执行文件,还需要使用chmod命令赋予权限
cp support-files/mysql.server /etc/init.d/mysql
- 设置服务开机自启
chkconfig --add mysql
chkconfig --level 2345 mysql on
- 查看服务设置,删除服务
chkconfig --list
,chkconfig --del mysql
- 启动mysql服务,查看mysql服务状态(注意:启动和关闭mysql服务需要有对应权限,否则报错)
service mysql start
,service mysql status
- 关闭、重启服务命令
service mysql stop
,service mysql restart
方法二:使用systemctl工具配置mysql服务
登录mysql服务器并配置root用户信息
- 登录root用户,如果之前生成了临时密码,登录mysql时还需要输入密码
mysql -u root -p
- 登录成功后,在mysql命令行中重新设置root用户密码,此处设置成root
alter user 'root'@'localhost' identified by 'root';
flush privileges;
- 开启远程登录权限(即不设置root用户的登录IP限制)
use mysql;
update user set host='%' where user='root';
flush privileges;
至此mysql在Linux上的安装入门教程结束