本篇博文安装的mysql版本是5.7.21,实际项目中线上mysql的安装也可以参照此篇博文。
1、查看是否安装mariadb,若安装了则卸载掉;同时查看是否已经安装了mysql
[root@localhost local]# rpm -qa | grep mariadb
[root@localhost local]# rpm -e --nodeps ×××
[root@localhost local]# rpm -qa | grep mysql
[root@localhost local]# rpm -ev ××× --nodeps
或者删除与mysql有关的(这里慎用,因为线上可能有的文件命名为mysql,实际上却和mysql无关,被删掉就gg了)
[root@localhost local]# find / -name "*mysql*" | xargs rm -rf
注意:mysql需要依赖numactl和libaio包依赖,请使用如下命令查看是否已安装:
yum list installed | grep libaio
yum list installed | grep numactl
若没有安装,请yum install libaio、yum install numactl
2、至mysql官网下载稳定版: https://dev.mysql.com/downloads/mysql/
3、下载好后上传至linux
[root@localhost /]# cd /usr/local
[root@localhost local]# rz
若没有rz命令报错,则先执行
[root@localhost local]# yum install lrzsz
4、解压并重命名(此时的路径: /usr/local)
[root@localhost local]# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
[root@localhost local]# mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql
5、赋权限
[root@localhost local]# useradd mysql
[root@localhost local]# groupadd mysql
[root@localhost local]# chmod 777 /usr/local/mysql
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql
[root@localhost local]# chgrp -R mysql /usr/local/mysql
6、初始化(记住密码 在root@localhost:后面的就是初始化的密码)
[root@localhost local]# ./mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7、将默认的3306端口加入防火墙
[root@localhost local]# vim /etc/sysconfig/iptables #加入以下
-A INPUT -p TCP --dport 3306 -j ACCEPT
8、编辑mysql配置文件 /etc/my.cnf
[root@localhost local] vim /etc/my.cnf
[mysqld]
#skip-name-resolve
#设置3306端口
port = 3306
socket=/tmp/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql/
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#lower_case_table_name=1
max_allowed_packet=520M
9、启动服务
[root@localhost local]# cp ./mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost local]# chmod 777 -R /etc/init.d/mysql
[root@localhost local]# service mysql start
这里要注意mysql配置文件里的socket目录为 /tmp/mysql.sock,因此/tmp目录要有足够权限
[root@localhost local]# chmod 777 /tmp
10、把mysql的bin目录添加至环境变量,以后就可以在任何目录下操作mysql命令了
[root@localhost bin]# vim /etc/profile
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:/java/git2.8.0/bin:/usr/local/mysql/bin
[root@localhost bin]# source /etc/profile
11、测试登录
[root@localhost local]# mysql -uroot -p
密码为刚才初始化时候记录下的,进入mysql后修改密码,设置权限(这里简单演示,实际生产中会创建专门的用户和限制IP段)
mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
mysqsl>grant all privileges on *.* to 'root' @'%' identified by 'root';
mysqsl>flush privileges;
12、最后建议把mysql服务加入系统服务
[root@localhost local]# chkconfig --add mysql
[root@localhost local]# chkconfig mysql on