系统环境: CentOS7
数据库版本: MySQL5.7
先检查要安装的Linux服务器cglib版本号, 查看其是否有相应cglib版本
strings /lib64/libc.so.6 | grep GLIBC
检查本地是否安装了MySQL
rpm -qa | grep mysql
如果存在的话,卸载
rpm -e 已存在的mysql全名
下载MySQL5.7
选在下载对应版本的MySQL http://mirrors.sohu.com/mysql/MySQL-5.7/
mkdir /usr/local/mysql
cd
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.3.27-linux-glibc2.12-x86_64.tar.gz
如果没有 wget命令,先执行安装wget
yum -y install wget
出于安全便利,创建一个专门用于操作数据库的用户
建立一个mysql的组
groupadd mysql
建立一个mysql用户,并把用户放到mysql组中
useradd -r -g mysql mysql
设置密码
passwd mysql // 123456a?
目录更改拥有者
chown -R mysql:mysql /usr/local/mysql
解压压缩包
tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
重命名
mv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql-5.7.23
配置my.cnf
[client]
port = 3306
#没有就创建
socket = /tmp/mysql.sock
[mysqld]
###############################基础设置#####################################
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1
#服务端口号 默认3306
port = 3306
#mysql安装根目录
basedir = /usr/local/mysql/mysql-5.7.23
#mysql数据文件所在位置 没有改目录则创建
datadir = /usr/local/mysql/data
#临时目录 比如load data infile会用到
tmpdir = /tmp
#设置socke文件所在目录
socket = /tmp/mysql.sock
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
default-storage-engine=INNODB
###############################日志设置#####################################
#数据库错误日志文件
log_error = /usr/local/mysql/log/error.log
pid-file=/var/log/mysqld.pid
修改 /etc/my.cnf中的内容
https://www.cnblogs.com/shamo89/p/10164427.html
注:pid-file的目录就放在/var/log 下,我尝试放到别的目录下失败了。创建完mysql.pid后,需要给mysql用户赋予权限。
touch /var/log/mysqld.log
chown -R mysql:mysql /var/log
cd log
chmod 755 mysqld.log
复制 mysql.server 到 /etc/init.d/ 目录下(目的是实现开机自动执行效果)
cd /usr/local/mysql/mysql-5.7.23/support-files/
cp mysql.server /etc/init.d/mysql
修改 /etc/init.d/mysql 中的basedir 和 datadir
初始化数据库
cd /usr/local/mysql/mysql-5.7.23/bin/
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.23 --datadir=/usr/local/mysql/data --console
数据库加密
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
启动MySQL
./mysqld_safe --user=mysql &
检查MySQL是否启动
ps -ef|grep mysql
登录客户端
grep "temporary password" /usr/local/mysql/log/error.log # 查找临时密码
./mysql -uroot -p # 第一次进入,需要输入密码,为临时密码,可以在error.log中查找
因为我这里启动了多次,所以有多个临时密码,选用最后的 Vu0t6.qD+F8= 进入mysql
修改密码
set password=password('新密码');
exit
./mysql -uroot -p // 然后输入新密码即可
设置远程访问
// 设置远程访问账号:grant all privileges on . to 远程访问用户名@’%’ identified by ‘用户密码’;
mysql> grant all privileges on *.* to root@'%' identified by 'root';
mysql> flush privileges; // 刷新权限
满心欢喜,打开navicat链接MySQL,结果悲剧了……
代开cmd,ping ip地址,没问题,telnet ip 3306 不通,好嘛,原来没有关掉防火墙。systemctl start firewalld # 开启防火墙 systemctl stop firewalld # 关闭防火墙 systemctl status firewalld #检查防火墙状态
关闭防火墙,链接,成功了。
到此,MySQL数据库安装,启动成功。
【小记】
上面是通过关闭防火墙,其实生成环境中关闭防火墙是不允许的,可以通过防火墙添加端口实现
// 添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
// 重启防火墙
firewall-cmd --reload
// 查询防火墙开放端口
firewall-cmd --list-ports
添加MySQL服务
chkconfig --add mysql
设置自启动
chkconfig mysql on
vim /etc/profile
在最后一行添加
export PATH=$JAVA_HOME/bin:/usr/local/mysql/mysql-5.7.23/bin:$PATH
使修改生效
source /etc/profile
礼成 ! 赶快收藏、点赞吧!