1.首先关闭linux的防火墙,执行命令
chkconfig iptables off
2.从mysql官网上下载自己适合的mysql版本https://www.mysql.com/downloads/,进入mysql官网,依次点击
3.下载后的mysql文件格式如下:
mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
将下载好的mysql压缩文件放置在linux的/opt/mysql文件夹下,解压该压缩文件
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
将解压后的文件重命名为mysql-5.7.27
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql-5.7.27
4.创建mysql用户组及用户
groupadd mysql
useradd-r -g mysql mysql
5.进入到mysql目录,创建my.cnf文件;
touch my.cnf
#MySQL客户端配置
[client]
# 指定字符集为utf8mb4default-character-set=utf8mb4
# 用于本地连接的Unix套接字文件存放路径
socket=/opt/mysql/data/mysql.sock
#MySQL命令行配置
[mysql]
# 指定字符集为utf8mb4default-character-set=utf8mb4
#服务端口号 默认3306
port=3306# 指定在网络传输中一次消息传输量的最大值。系统默认值 为1MB,最大值是1GB,必须设置1024的倍数。
max_allowed_packet=256M
# MySQL服务端配置
[mysqld]
# 指定字符集为utf8mb4,因为mysql8.0中的默认字符集为utfmb4,会和其他程序引起兼容性问题
character-set-server =utf8mb4
#mysql安装根目录
basedir=/opt/mysql/mysql-5.7.27#mysql数据文件所在位置
datadir=/opt/mysql/data
#设置socke文件所在目录
socket=/opt/mysql/data/mysql.sock
#服务端口号 默认3306
port=3306#只能用IP地址检查客户端的登录,不用主机名
skip-name-resolve
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names= 1#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet=128M
# 允许最大连接数
max_connections=200#MySQL5.7group by新特性
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
#默认存储引擎
default_storage_engine=InnoDB
[mysqld_safe]
#数据库日志文件
log-error=/opt/mysql/data/mysqld_safe.log
#PID文件
pid-file=/opt/mysql/data/mysqld.pid
6.拷贝my.cnf文件到目录/etc/my.cnf(mysql启动默认配置文件的位置)
cp my.cnf /etc/my.cnf
7.初始化数据,进入mysql/bin目录下,执行下面命令
./mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-5.7.27 --datadir=/opt/mysql/data --console
8.拷贝启动文件
cp -a ./support-files/mysql.server /etc/init.d/mysqld
9.修改启动脚本
vim /etc/init.d/mysqld
basedir=/opt/mysql/mysql-5.7.27datadir=/opt/mysql/data
10.设置开机启动
chkconfig --add mysql
chkconfig mysql on
11.启动服务
service mysqld start
12.加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
export MYSQL_HOME=/opt/mysql/mysql-5.7.27export PATH=$PATH:$MYSQL_HOME/bin
source/etc/profile
13.本机访问mysql,端口号默认3306,如果需要修改root账户密码,在mysql/bin目录下,执行下面命令
mysql -uroot -p
14.修改用户名密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
15.允许远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码'WITH GRANT OPTION;
flush privileges;