Linux 安装Mysql
1.官网下载mysql
官网下载地址:https://dev.mysql.com/downloads/mysql/
2.检查服务器是否已经安装过mysql
-
find / -name mysql
: 全局搜索是否有mysql相关文件 -
msyql --version
: 查看是否已安装mysql -
rpm -qa | grep -i mysql
(参数-i 忽略大小写),没有输出表示没有通过rpm方式安装过mysql;
2.1卸载mysql
-
tar 解压方式安装mysql的卸载方式
find / -name mysql
查出mysql相关文件;rm -rf mysql相关文件
: 空格隔开多个文件目录 -
rmp安装mysql的卸载方式
rpm -qa | grep -i mysql
:查看安装了哪些mysql相关组件rpm -e 查出的组件名称
: 卸载所有mysql相关组件,有些有先后卸载依赖关系。find / -name mysql
查出mysql相关文件;rm -rf mysql相关文件
: 空格隔开多个文件目录 -
yum安装mysql的卸载方式
find / -name mysql
查出mysql相关文件;rm -rf mysql相关文件
: 空格隔开多个文件目录
3.将压缩包上传到服务器目录 /usr/local (目录可以自定义)
4.解压mysql安装包
执行命令:tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
tar -xvf 目标压缩包
:用于解压 .tar.xz
tar -zxvf 目标压缩包
:用于解压 .tar.gz
5.在mysql目录下创建存储文件夹
执行命令:mkdir data
6.新建mysql data目录
cd /usr/local/mysql-8.0.30
mkdir data
: 新建data文件夹
chmod -R 755 /usr/local/mysql/mysql-8.0.32/data
: 给data目录添加执行权限
7.编辑mysql 配置文件
执行命令:vim /etc/my.cnf
编辑以下内容:
[mysqld]
symbolic-links=0
port=3306
basedir=/usr/local/mysql-8.0.30/ # MySQL根目录
datadir=/usr/local/mysql-8.0.30/data/ # MySQL的data目录
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
symbolic-links=0
#skip-grant-tables
其中skip-grant-tables可以设置免密登录;
8.进入mysql bin目录,执行初始化命令
执行命令: ./mysqld --user=mysql --basedir=/usr/local/mysql-8.0.30 --datadir=/usr/local/mysql-8.0.30/data --initialize
初始化mysql登录密码需要保存。
9.添加mysql服务
cd mysql解压根目录
cp -a ./support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
: 添加可执行权限
chkconfig --add mysql
: 添加服务
10.启动mysql
service mysql start
service mysql stop
service mysql status
11.将mysql启动脚本添加到系统目录:(相当于配置全局环境变量)
ln -s /usr/local/mysql-8.0.30/bin/mysql /usr/bin
12.登录mysql
mysql -uroot -p
: 输出初始化密码;或者/etc/my.cnf中配置 skip-grant-tables跳过输入密码;
13.修改密码
use mysql;
select Host,User from user where User='root';
查看root 对应的host是什么值,是localhost表示mysql客户端只允许本机访问,将其修改成 “%”,
让所有ip都能访问;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
: 刷新权限
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
:修改密码
flush privileges;
: 刷新权限
14.防火墙添加3306端口
systemctl status firewalld
: 查看防火墙服务状态
firewall-cmd --list-all
:查看防火墙开通的所有端口
firewall-cmd --add-port=3306/tcp --permanent
:添加3306端口
firawall-cmd --reload
:重新加载配置文件
systemctl restart firewalld
:重启防火墙
15. 云服务的话另外还需要开通3306的安全组;
16.错误记录
-
启动报错:找不到mysql启动文件的值;
vim /etc/init.d/mysql 后发现 basedir 和datadir中没有赋值;将 /etc/my.cnf中的值粘贴后来后,启动成功;
-
外部ip mysql 连接工具连接服务器上的mysq失败:报错连接超时;
解决:修改/etc/my.cnf ;
增加 :
wait_timeout=31536000
interactive_timeout=31536000
再重启mysql后成功;