在Linux上安装mysql,可以按照以下步骤进行操作:
一、卸载 mariadb默认数据库
1.打开终端,查看是否安装默认数据库mariadb
rpm -qa |grep mariadb
2. 强制卸载mariadb(默认mariadb与mysql有冲突)
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
3.再次查看是否卸载成功
rpm -qa |grep mariadb
二、安装
1.安装libaio
yum install -y libaio
2.创建安装目录
mkdir /usr/local/mysql
3.进入目录
cd /usr/local/mysql
4.下载安装包链接
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
5.下载安装包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
6.解压文件
tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
7.我们可以把它重命名为: mysql8.0
mv mysql-8.0.31-linux-glibc2.12-x86_64 mysql8.0
8.在mysql8.0目录下新建一个etc文件夹
cd mysql8.0
mkdir etc
9.进入etc目录
cd etc
10.创建my.cnf文件
touch my.cnf
11.授予权限
chmod 644 /usr/local/mysql/mysql8.0/etc/my.cnf
12.编辑my.cnf文件
vim my.cnf
将下面内容添加到my.cnf文件中,然后按ESC进入Command模式,然后输入“:wq”,回车就可以保存并退出了。
[mysqld]
default-time-zone='+08:00'
bind-address=0.0.0.0
port=3306
user=mysql
socket=/tmp/mysql3306.sock
pid_file=/usr/local/data/data_3306/data/my.pid
basedir=/usr/local/mysql/mysql8.0
datadir=/usr/local/data/data_3306/data
#character config
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
symbolic-links=0
log-error=/usr/local/data/data_3306/logs/mysql3306.err
log_bin = /usr/local/data/data_3306/binlog/mysql-bin
relay_log = /usr/local/data/data_3306/relaylog/relay-bin
slow_query_log_file = /usr/local/data/data_3306/logs/slow.log
slow_query_log=on
server-id=6
#innodb settings
innodb_buffer_pool_size=128M
#skip-grant-tables
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
lower_case_table_names=1
default_authentication_plugin=mysql_native_password
[mysql]
socket = /tmp/mysql3306.sock
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
13.创建一个data目录
mkdir -p /usr/local/data/data_3306
14. 在data里建立这个四个目录
cd /usr/local/data/data_3306/
mkdir binlog
mkdir logs
mkdir data
mkdir relaylog
15.创建mysql 用户组和用户
groupadd mysql
useradd -r -g mysql mysql
16.赋予权限
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/data
17.mysql初始化
cd /usr/local/mysql/mysql8.0/bin
./mysqld --defaults-file=/usr/local/mysql/mysql8.0/etc/my.cnf --initialize-insecure
18.启动mysq
/usr/local/mysql/mysql8.0/bin/mysqld_safe --defaults-file=/usr/local/mysql/mysql8.0/etc/my.cnf &
19.查看是否启动
ps -ef|grep mysql
20.配置环境变量
vim /etc/profile +
将下面内容添加到最后一行
export PATH=/usr/local/mysql/mysql8.0/bin:$PATH
21.从新加载配置文件
source /etc/profile
三、设置密码
mysql -S /tmp/mysql3306.sock -u root -p
1..不需要输入密码直接回车
2.修改密码(依次执行)
flush privileges;
ALTER USER 'root'@'localhost'IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost'IDENTIFIED wITH mysql_native_password BY '123456';
flush privileges;
3.启动指令
/usr/local/mysql/mysql8.0/bin/mysqld_safe --defaults-file=/usr/local/mysql/mysql8.0/etc/my.cnf &
注意:修改密码后,可能会启动失败。
解决方法如下:
(1)执行:
ps aux |grep mysqld
(2) 杀死进程 (进程为执行ps aux |grep mysqld命令查询到的root mysql后面所跟数字)
需要把两个号都杀一次执行下方命令查询 进程号输自己查到的
kill -9 进程号
4.从新启动mysql
/usr/local/mysql/mysql8.0/bin/mysqld_safe --defaults-file=/usr/local/mysql/mysql8.0/etc/my.cnf &
下图为正常启动效果
5.关闭指令
mysqladmin -s /tmp/mysql3306.sock -u root -p shutdown
四、配置远程连接
1.登录mysql
mysql -S /tmp/mysql3306.sock -u root -p
2.输入密码上方设置密码为123456
输入密码看不到密码直接输入回车即可
3.执行下面命令
use mysql
update user set Host='%' where User='root';
flush privileges;
4.使用工具连接即可(如有防火墙需要单独设置)
五、开放防火墙
1.查看防火墙状态
firewall-cmd --state
2.开放 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
3.重新加载服务
firewall-cmd --reload
4.查看端口号是否开放
firewall-cmd --zone=public --list-port
六、设置开机自启
1.创建一个新的MySQL服务文件。例如,创建一个名为mysql.service的文件在/etc/systemd/system/目录下:
sudo vim /etc/systemd/system/mysql.service
2.在mysql.service文件中,添加以下内容:
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=root
Group=root
ExecStart=/usr/local/mysql/mysql8.0/bin/mysqld_safe --defaults-file=/usr/local/mysql/mysql8.0/etc/my.cnf
ExecStop=/usr/local/mysql/mysql8.0/bin/mysqladmin shutdown
Restart=on-failure
[Install]
WantedBy=multi-user.target
3.杀死进程 (进程为执行ps aux |grep mysqld命令查询到的root mysql后面所跟数字)
需要把两个号都杀一次执行下方命令查询 进程号输自己查到的
kill -9 进程号
4.启用并启动服务:
sudo systemctl enable mysql.service
sudo systemctl start mysql.service