Linux系统中MySQL的安装

在日常的生产、测试、开发环境中,绝大部分使用的都是Linux系统,所以需要在Linux系统中安装MySQL去体验在真实环境中的使用

首先需要一台Linux服务器,Linux服务器使用云服务器或者虚拟机都可以,如果是虚拟机可以使用CentOS或者Kali

虚拟机可以使用VMware,在里面下载CentOS或者Kali的虚拟机,下载好虚拟机之后使用finalshell对虚拟机进行连接,在连接时需要获取到虚拟机的IP地址

选择SSH连接

名称可以设置,也可以不设置,主机填入虚拟机的IP地址,接着在下面的用户名和密码出输入虚拟机的用户名和密码,输入之后点击确定即可连接

连接虚拟机之后就可以对MySQL进行下载了

首先需要先把用户切换为root用户,切换为root用户的命令为sudo -i,输入这个命令之后点击回车就可以切换为root用户了

接下来就是对MySQL进行安装,我所使用的虚拟机是kali Linux,MySQL的版本为8.0.36接下来所写的则为在kali中安装MySQL8.0.36的过程

下方的代码直接在finalshell输出即可

1.安装依赖

apt update

apt install -y wget xz-utils libnuma1

apt install -y libaio1t64 || apt install -y libaio1

2.创建目录并下载

mkdir -p /root/mysql && cd /root/mysql

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz

ls -lh

3.解压

tar -xJf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz -C /usr/local

mv /usr/local/mysql-8.0.36-linux-glibc2.28-x86_64 /usr/local/mysql

/usr/local/mysql/bin/mysqld --version

4.创建MySQL的用户和数据目录

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

mkdir -p /usr/local/mysql/data

chown -R mysql:mysql /usr/local/mysql

5.编写配置文件

mv /etc/mysql /etc/mysql.bak 2>/dev/null

vim /etc/my.cnf

vim编辑器中的文件内容为下方内容

client

socket=/tmp/mysql.sock

default-character-set=utf8mb4

mysqld

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

port=3306

pid-file=/usr/local/mysql/data/mysqld.pid

log-error=/usr/local/mysql/data/mysql.err

character-set-server=utf8mb4

default-storage-engine=InnoDB

default_authentication_plugin=mysql_native_password

slow_query_log=1

slow_query_log_file=/usr/local/mysql/data/slow.log

long_query_time=2

6.初始化数据目录

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize \

--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

echo "退出码=$?"

grep 'temporary password' /usr/local/mysql/data/mysql.err

在运行之后会退出,并给出一个临时密码,这个临时密码需要记下来,后面会使用

7.注册systemd服务

cat > /etc/systemd/system/mysqld.service <<'EOF'

Unit

Description=MySQL 8.0.36

After=network.target

Service

User=mysql

Group=mysql

Type=simple

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

Restart=on-failure

RestartSec=5

LimitNOFILE=65535

Install

WantedBy=multi-user.target

EOF

systemctl daemon-reload

systemctl enable --now mysqld

sleep 5

ss -lnt | grep 3306

8.修改密码并创建远程账号

P=$(grep -oP 'localhost: \K\S+' /usr/local/mysql/data/mysql.err | tail -1)

MYSQL_PWD="$P" /usr/local/mysql/bin/mysql --no-defaults --connect-expired-password \

-uroot -S /tmp/mysql.sock -e "

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

"

这里主要是将安装MySQL时给出的临时密码进行修改,修改为123456,并创建一个新的用户用来远程访问并进行增删改查,因为默认的root用户只是当前节点localhost访问的,无法远程访问

9.对上述操作进行验证

echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

source /etc/profile.d/mysql.sh

mysql -uroot -p123456 -S /tmp/mysql.sock -e "

SELECT VERSION() AS ver, @@port AS port, @@character_set_server AS charset;

SELECT user,host,plugin FROM mysql.user WHERE user='root';

"

如果输出结果为版本8.0.36,端口3306,字符集utf8mb4,并且mysql.user中有两个root(一个为localhost,一个为%)则表示安装配置成功

相关推荐
贾公子1 小时前
检测结果怎么落库——表结构、状态机与三类对账
后端·mysql
wzg20161 小时前
ubuntu通过docker镜像部署安装onlyoffice
linux·ubuntu·docker
echome8882 小时前
Linux 定时任务:crontab 写法与常见失效原因
linux·运维·网络·定时任务·crontab
老约家的可汗2 小时前
Linux开发三件套:make、git、gdb 入门指南
linux·运维·服务器
Sw1zzle2 小时前
Go入门(零):Linux Ubuntu 22.04 安装 Go
linux·ubuntu·golang
device_Any2 小时前
接口文档写着三个字段,接口返回了五个
android·java·linux
Small-Young2 小时前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·spring boot·mysql·postgresql·乐观锁·并发控制
浮生若城2 小时前
MySQL 数据库基础
数据库·mysql
香蕉大香蕉(06敬畏市场)3 小时前
MySQL 单点详解(09)
java·数据库·mysql·面试·八股·大厂实习