在日常的生产、测试、开发环境中,绝大部分使用的都是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,一个为%)则表示安装配置成功