@TOC
1.前言
最近写了几篇关于mysql的文章,今天闲来无事,凑空闲时间在Linux Centos-7 下安装了一下mysql,这也为了以后做实验的时候,能够方便一些。其实安装过程还是比较简单的。废话不说,我们直接开始
2.实验物料
Vmare Centos-7(64位) mysql 5.7.29
3.安装过程
1.下载
这里我直接找了一个国内的镜像,下载速度比较快,里面各种版本可以自行选择。
http://mirrors.sohu.com/mysql
我这里直接下载http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
执行命令:
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
2.解压缩
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
解压完成后,查看一下
为了方便起见,我改一下文件名称:
mv mysql-5.7.35-linux-glibc2.12-x86_64/ mysql
3.创建一个操作数据库的专门用户
groupadd mysql
useradd -r -g mysql mysql
注: useradd -r参数表示mysql用户是系统用户,不可用于登录系统。
useradd -g参数表示把mysql用户添加到mysql用户组中。
4.将mysql目录的所属用户和组改为mysql
创建一个文件夹:var/lib/mysql,在这个文件夹下,再新建三个文件夹:
data:用于存放mysql的数据
binlog:用于存放binlog日志
log:用于存放error.log和慢查询等日志
在/usr/local/mysql目录下,授权
chown -R mysql:mysql ./
然后再去/var/lib/mysql目录下授权
chown -R mysql:mysql ./
5配置my.cnf
创建my.cnf:
touch my.cnf
配置如下:
[mysql]
#mysql客户端默认字符集
default-character-set=utf8
socket=/tmp/mysql.sock
[mysqld]
# 按照文档说明,如果服务器专门用作mysql服务,建议设置成物理内存的70%已上,否则10%
innodb_buffer_pool_size=768MB
#设置3306端口
port=3306
socket=/tmp/mysql.sock
#设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/var/lib/mysql/data
# 允许最大连接数
max_connections=2000
# 服务端使用的字符集默认为8比特编码的latin1字符?
character-set-server=utf8
collation_server=utf8_general_ci
skip-character-set-client-handshake=1
# 创建新表时将使用的默认存储引,不设置,从5.6开始,默认也是INNODB
default-storage-engine=INNODB
# 一条更新语句数据最大值,默认1M
max_allowed_packet=16M
#开启binlog,必须要设置一个唯一的server-id
server-id=1234543
#开启binlog,并设置binlog的文件
log-bin=/var/lib/mysql/binlog/mysql-bin.log
#设置binlog的格式
binlog_format=ROW
#设置错误日志的文件
log-error=/var/lib/mysql/log/error.log
#开启慢查询的日志
slow_query_log = on
#慢查询的定义
long_query_time=3
#慢查询的日志记录
slow-query-log-file=/var/lib/mysql/log/slowquery.log
#解决启动时的时间warn
explicit_defaults_for_timestamp=true
6.初始化mysqld
./bin/mysqld --initialize --user=mysql
这时候会在error.log看到自动生成的一个密码:
7.设置开启启动
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
8.将mysqld 加入到系统服务
chkconfig --add mysqld
chkconfig --list mysqld
9.配置环境变量
在etc/profile文件的最下面,添加如下内容:
# mysql环境变量
PATH=$PATH:/usr/local/mysql/bin
export PATH
更新配置,使其生效
source /etc/profile
10.重新修改密码
启动mysql:
service mysqld start
mysql -uroot -p
按照提示,输入上面的密码:
修改密码为root:
set password=password('root')
11.允许远程登录
grant all privileges on *.* to root@"%" identified by "password" with grant option;
flush privileges;
这时候试一下,看能不能连接上,如果不行,就重启mysql:
service mysql restart
登录mysql,再次修改密码root:
use mysql;
update mysql.user set authentication_string=password('123456') where user='root' ;
再次重启mysql:
service mysql restart
此时连接完成