21.安装和配置 mysql 允许远程连接
-- 未经授权禁止转载 --

       下载

       https://dev.mysql.com/downloads/mysql


       切换到 src 目录

       cd /usr/local/src


       解压

       tar -xvf mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz \

           -C /usr/local/workspace

       说明

       -C(change directory) 表示解压到指定目录


       切换到 workspace 目录

       cd /usr/local/workspace


       目录重命名

       mv mysql-8.2.0-linux-glibc2.28-x86_64 mysql


       切换到 mysql 目录

       cd mysql


       创建一个名为 mysql 的用户组

       groupadd mysql


       创建一个名为 mysql 的用户, 并将其添加到 mysql 用户组中

       useradd -g mysql mysql

               -g(primary group) 指定用户的主用户组


       查看用户 mysql 所属的所有用户组

       groups mysql


       显示 mysql 目录的详细信息

       ls -l /usr/local/workspace/mysql


       修改 mysql 目录的所有者和所属组

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


       软连接

       ln -s \

           /usr/local/workspace/mysql/bin/mysqld \

           /usr/bin/mysqld


       初始化 mysql 数据库

       mysqld \

           --initialize \

           --user=mysql \

           --basedir=/usr/local/workspace/mysql \

           --datadir=/usr/local/workspace/mysql/data


               错误

                       error while loading shared libraries: libaio.so.1

               解决方法

                       apt install libaio1


                       libaio.so.1 是异步I/O库,

                       允许应用程序进行非阻塞的磁盘读写操作


                       非阻塞

                               当调用某个函数或发出一个网络请求时,

                               程序不会等待这个操作完成就继续执行其他代码


       临时密码

               A temporary password is generated for

               root@localhost: Tq6&)NF4jQa)


       配置 my.cnf

       vim /etc/my.cnf


       启动 mysql

       方式1 mysqld

       mysqld &

               错误

               Could not create unix socket lock file

               /var/lib/mysql/mysql.sock.lock

               解决方法

               mkdir /var/lib/mysql

               chmod 777 /var/lib/mysql

               说明

                       mysql.sock是数据库与客户端进行通信的套接字文件,

                       用于在mysql客户端和服务器之间建立本地连接

                       /var/lib 目录用于存储系统和应用程序的数据文件


       方式2 mysqld_safe

       软连接

       ln -s \

           /usr/local/workspace/mysql/bin/mysqld_safe \

           /usr/bin/mysqld_safe

       # mysqld_safe --user=mysql &

       mysqld_safe &


       说明

       mysqld 直接启动 mysql 服务器

       mysqld_safe 是一个封装了 mysqld 的脚本,

       在启动 mysqld 之前检查一些配置和环境变量,

       并在启动后监控 mysqld 的运行状态


       查看错误日志

       tail error.log


       查找与 mysql 相关的进程

       ps -aux | grep mysql


       软连接

       ln -s \

           /usr/local/workspace/mysql/bin/mysql \

           /usr/bin/mysql


      连接到 mysql 数据库

       mysql -u root -p

               错误

                       Can't connect to local MySQL server

                       through socket '/var/lib/mysql/mysql.sock'

               解决方法1

                       mkdir /var/lib/mysql

                       chmod 777 /var/lib/mysql

               解决方法2

                       mysql -h 127.0.0.1 -u root -p


       设置 root 用户密码为 123456

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

       exit


       允许远程连接

       USE mysql;

       UPDATE mysql.user SET host = '%' WHERE User = 'root';

       flush privileges;

       exit


       软连接

       ln -s \

           /usr/local/workspace/mysql/bin/mysqladmin \

           /usr/bin/mysqladmin

           

       关闭 mysql 数据库

       mysqladmin -u root -p shutdown


       重启 mysql 数据库

       mysqladmin -u root -p reload


       使用 systemctl 命令管理 mysql 服务

       vim /usr/lib/systemd/system/mysql.service


       systemctl 命令

               查看服务状态 systemctl status mysql

               启动 systemctl start mysql

               停止 systemctl stop mysql


               检查 mysql 是否已设置为开机自动启动

                       systemctl is-enabled mysql

               设置 mysql 开机自动启动

                       systemctl enable mysql

               禁止 mysql 开机自动启动

                       systemctl disable mysql