下载MySQL :: 下载 MySQL Community Server (存档版本)
选最新版 linux系统,64位
通过xftp传到虚拟机
[root@node1 ~]# ls
anaconda-ks.cfg mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz
[root@node1 ~]#
创建用户
[root@node1 ~]# useradd -r -M -s /sbin/nologin -u 306 mysql
[root@node1 ~]# id mysql
uid=306(mysql) gid=306(mysql) groups=306(mysql)
[root@node1 ~]#
解压软件到/usr/local/
[root@node1 ~]# tar xf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@node1 local]# ls
bin etc games include lib lib64 libexec mysql-5.7.39-linux-glibc2.12-x86_64 sbin share src
[root@node1 local]#
文件名太长,做个软链接
[root@node1 local]# ln -s /usr/local/mysql-5.7.39-linux-glibc2.12-x86_64 /usr/local/mysql
[root@node1 local]# ll /usr/local/
total 0
drwxr-xr-x. 2 root root 6 Jun 22 2021 bin
drwxr-xr-x. 2 root root 6 Jun 22 2021 etc
drwxr-xr-x. 2 root root 6 Jun 22 2021 games
drwxr-xr-x. 2 root root 6 Jun 22 2021 include
drwxr-xr-x. 2 root root 6 Jun 22 2021 lib
drwxr-xr-x. 3 root root 17 Dec 13 20:46 lib64
drwxr-xr-x. 2 root root 6 Jun 22 2021 libexec
lrwxrwxrwx. 1 root root 46 Dec 29 22:27 mysql -> /usr/local/mysql-5.7.39-linux-glibc2.12-x86_64
drwxr-xr-x. 9 root root 129 Dec 29 22:24 mysql-5.7.39-linux-glibc2.12-x86_64
drwxr-xr-x. 2 root root 6 Jun 22 2021 sbin
drwxr-xr-x. 5 root root 49 Dec 13 20:46 share
drwxr-xr-x. 2 root root 6 Jun 22 2021 src
[root@node1 local]#
修改属主
[root@node1 local]# chown -R mysql.mysql /usr/local/mysql*
添加环境变量
[root@node1 local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@node1 local]# source /etc/profile.d/mysql.sh
[root@node1 local]# which mysql
/usr/local/mysql/bin/mysql
[root@node1 local]# ln -s /usr/local/mysql/include /usr/include/mysqld
[root@node1 local]# vi /etc/ld.so.conf.d/mysqld.conf
[root@node1 local]# cat /etc/ld.so.conf.d/mysqld.conf
/usr/local/mysql/lib
[root@node1 local]# ldconfig
[root@node1 local]# vi /etc/man_db.conf
MANDATORY_MANPATH /usr/man
MANDATORY_MANPATH /usr/share/man
MANDATORY_MANPATH /usr/local/share/man
MANDATORY_MANPATH /usr/local/mysql/man //添加这一行
建立数据存放目录
[root@node1 ~]# mkdir -p /opt/data
[root@node1 ~]# chown -R mysql.mysql /opt/data
[root@node1 ~]# ll /opt/
total 0
drwxr-xr-x. 2 mysql mysql 6 Dec 29 22:39 data
[root@node1 ~]#
初始化数据库
[root@node1 ~]# /usr/local/mysql/bin/mysqld --initialize --user mysql --datadir /opt/data
2022-12-29T14:42:59.830299Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-12-29T14:43:00.080648Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-12-29T14:43:00.136950Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-12-29T14:43:00.182994Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 176edcda-8787-11ed-a037-000c29c39963.
2022-12-29T14:43:00.185833Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-12-29T14:43:00.367779Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-12-29T14:43:00.367810Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-12-29T14:43:00.368177Z 0 [Warning] CA certificate ca.pem is self signed.
2022-12-29T14:43:00.533261Z 1 [Note] A temporary password is generated for root@localhost: -Vp,WJyRC1Ke //为临时密码
[root@node1 ~]#
生成配置文件
[root@node1 ~]# vi /etc/my.cnf
[root@node1 ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
[root@node1 ~]#
配置脚本
[root@node1 support-files]# vim mysql.server
basedir=/usr/local/mysql
datadir=/opt/data
启动脚本,设置开机自启
[root@node1 ~]# vim /usr/lib/systemd/system/mysqld.service
[root@node1 ~]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysqld server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
[Install]
WantedBy=multi-user.target
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl status mysqld
● mysqld.service - mysqld server daemon
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@node1 ~]#
设置密码
mysql> set password = password("WangShuai555!");
多表管理
<code class="language-plaintext hljs">mysql> SELECT name,sex FROM tb_students_info GROUP BY sex;
+-------+--------+
| name | sex |
+-------+--------+
| Henry | Female |
| Dany | Male |
+-------+--------+
2 rows in set (0.00 sec)
mysql> SELECT sex, GROUP_CONCAT(name) FROM tb_students_info GROUP BY sex;
+--------+-----------------------------------+
| sex | GROUP_CONCAT(name) |
+--------+-----------------------------------+
| Female | Henry,Jim,John,Thomas,Tom |
| Male | Dany,Green,Jane,Lily,Susan,LiMing |
+--------+-----------------------------------+
2 rows in set (0.00 sec)
mysql> SELECT age,sex,GROUP_CONCAT(name) FROM tb_students_info GROUP BY age,sex;
+------+--------+--------------------+
| age | sex | GROUP_CONCAT(name) |
+------+--------+--------------------+
| 21 | Female | John |
| 22 | Female | Thomas |
| 22 | Male | Jane,Lily,LiMing |
| 23 | Female | Henry,Tom |
| 23 | Male | Green,Susan |
| 24 | Female | Jim |
| 25 | Male | Dany |
+------+--------+--------------------+
7 rows in set (0.00 sec)
</code>