1.在mysql官网选择要下载的mysql版本
MySQL :: Download MySQL Community Server (Archived Versions)
2.选择好后右键复制download链接,在linux的usr目录新建文件夹 mysql
注意:此处不要将目录新建到root目录下。不然会有一系列的问题
mkdir mysql
进入mysql目录 cd mysql wget + 复制的链接:本文以5.7.38为例
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
3.下载后解压: tar -zvxf https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
4.可以通过mv指令修改文件名称,mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql
5.进入mysql文件夹 cd mysql 创建data文件夹用于数据存放,mkdir data。
6.配置my.cnf文件 vim /etc/my.cnf:
[mysqld]
datadir=/usr/mysql/mysql/data
basedir=/usr/mysql/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证(登录时不需要输密码,建议注释掉。忘记密码时可以放开)
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
注:复制粘贴到服务器时注意前面几行是否有遗漏掉
7.初始化数据 进入mysql的bin文件夹执行 cd /root/mysql/mysql/bin
先给予data目录权限:chown -R mysql.mysql /root/mysql/mysql/data
执行:./bin/mysqld --initialize --user=mysql --basedir=/data/software/mysql/ --datadir=/data/software/mysql/data/
8.将mysql.server复制到/etc/init.d中使其有执行权限
cp /usr/mysql/mysql/support-files/mysql.server /etc/init.d/mysql
9. vim ~/.bash_profile
在下面设置:export PATH=$PATH:/usr/mysql/mysql/bin 后并 :wq报错
10.使配置生效: source ~/.bash_profile
11.设置开机启动
chkconfig mysql on
12.启动mysql服务
service mysql start
上文中,etc/my.cnf mysqld中配置了
skip-grant-tables 会使mysql可以无密码登录,前两天收到云通知 mysql弱指令漏洞故此补充
13.mysql密码修改
上文中设置为mysql免密登录 linux控制台输入 mysql -uroot 进入mysql服务
mysql控制台输入:
update mysql.user set authentication_string=password('此处输入您要添加的mysql新密码') where user="root";
密码修改成功
刷新配置将用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;
exit退出mysql控制台
vim /etc/my.cnf 进入mysqld配置
将skip-grant-table注释掉。
esc :wq 保存
回到控制台执行: service mysql restart
mysql重启后 mysql -uroot 已无法访问mysql
输入 mysql -uroot -p
输入你设置的新密码后 mysql服务可以正常访问
mysql弱指令漏洞解除后续通过密码访问mysql
14.远程授权其它mysql连接工具(navcat, datagrip等)可以通过账号密码的形式连接mysql服务器
设置远程连接密码
进入mysql服务器后:
设置远程密码
ALTER USER USER() IDENTIFIED BY '远程连接密码'; 数据库本身密码也会重置
授予用户密码远程访问权限
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '刚刚设置的密码' WITH GRANT OPTION;
刷新配置将用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;
exit退出mysql控制台
此时远程连接工具可以通过用户名密码访问mysql。
注:要在服务器安全组中将端口权限全部打开,不然mysql会报10060.