一、前言
今天前端的小伙伴跑来说接口又双叒叕提示错误了,检查了代码发现没有问题,估计应该是服务器的MYSQL连接断了,查看日志如下
某错,是连接不上服务器上的mysql数据库了,真是糟糕透了,前几日也出现过这个问题。为了方便,我服务器上的mysql是用docker安装的,这几日docker可是整得我心神不宁,跑java的容器经常断,不知是docker的问题还是服务器运行内存过小(4G),既然事已至此,也无路可走了,docker stop了mysql容器,打算在服务器不使用docker,自己部署mysql,看似轻松,期间还是遇到了一些小问题的,在此记录一下,当作一个学习的过程。
后记,不是docker的问题,是我的服务器遭到了入侵攻击,系统被篡改了,导致服务器全功率满载运行,非常卡,建议大家使用服务器的时候要注意好安全问题。
二、安装步骤
1. 准备安装包
去mysql官网下载压缩包
下载地址:mysql官方下载地址
System选择Linux - Generic
根据自己的linux位数选择版本,我选的是64-bit
2. 解压压缩包
先利用Xftp工具将下载好的压缩包移动到一个目录下,接着解压压缩包
tar -xzvf mysql-5.7.29-linux-glibc2.12-x86_6
再移动并重命名
mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql
3. 创建MySQL用户组合用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
在这里我遇到了一个问题
解决:
lsattr /etc/
查看 /etc/passwd的权限,发现是可读可写的
lsattr /etc/passwd
i表示不可修改
chattr -i /etc/passwd
chattr -a /etc/passwd
chattr -e /etc/passwd
之后还有这个问题
同样的方式解决即可
next,创建数据目录并赋予权限。
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
配置my.cnf
vi /etc/my.cnf
内容如下
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
编辑好后,保存退出。
4. 初始化数据库
进入MySQL的bin目录。
cd /usr/local/mysql/bin/
初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看密码
cat /data/mysql/mysql.err
5. 启动MySQL服务
先将mysql.server放置到/etc/init.d/mysql中。
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动
service mysql start
ps -ef|grep mysql
到这里说明MySQL已经安装成功了。
6. 修改密码
首先登陆MySQL
mysql -u root -p #bin目录下
在这遇到一个错误
或许我没进入到bin目录下?执行一下命令,之后再登录mysql,解决
ln -s /usr/local/mysql/bin/mysql /usr/bin
在执行下面三步操作,然后重新登陆。
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
7. 远程连接
这里主要执行下面三个命令(先登陆数据库)。
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
到这里,MySQL5.7应该说已经装好了。
参考资料:《Linux安装Mysql5.7》