CentOS7安装MySQL5.7
2023-11-13 小柴你能看到嘛
哔哩哔哩视频地址
https://www.bilibili.com/video/BV1jz4y1A7LS/?vd_source=9ba3044ce322000939a31117d762b441
一.解压
            
            
              shell
              
              
            
          
          tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
1.在/usr/local解压 
tar -xvf  mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
2.改名
mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql
3.创建用户组
 groupadd mysql
4.查看一下用户组
cat /etc/group
5.创建用户加入mysql组
 useradd -r -g mysql mysql
 6.查询用户
 cat /etc/passwd
 7.创建mysql/data文件夹
 mkdir /usr/local/mysql/data
 8.cd mysql
 9.chown 改变属组/属主 那个目录下的文件
chown -R mysql:mysql /usr/local/mysql  
10.#赋予权限 755 可读 可写
chmod 755 /usr/local/mysql
11.初始化数据库
二.再移动并重命名一下
如果**/usr/local/下不存在mysql**文件夹,直接执行如下命令
            
            
              shell
              
              
            
          
          mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql下面是存在mysql文件夹,移动加删除的步骤:

三.创建mysql用户组和用户并修改权限
            
            
              shell
              
              
            
          
          groupadd mysql
useradd -r -g mysql mysql四.创建数据目录并赋予权限
            
            
              shell
              
              
            
          
          mkdir /usr/local/mysql/data   #创建目录
chown -R mysql:mysql /usr/local/mysql  #赋予权限
chmod 755 /usr/local/mysql
五.初始化数据库 p*lz%oCOg7k>
进入mysql的bin目录
            
            
              shell
              
              
            
          
          cd /usr/local/mysql/bin/初始化
            
            
              shell
              
              
            
          
          ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql 运行时,若出现错误,如:
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file rectory
1.先检查该链接库文件有没有安装使用 命令进行核查
            
            
              shell
              
              
            
          
          rpm -qa|grep libaio  2.运行该命令后发现系统中无该链接库文件使用命令
            
            
              shell
              
              
            
          
          yum install  libaio-devel.x86_64
3.安装成功后,继续运行数据库的初始化命令,提示成功。密码:Wvhtao6egRp
            
            
              shell
              
              
            
          
          ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql 
六.修改配置my.cnf
            
            
              shell
              
              
            
          
          vim /etc/my.cnf内容如下
            
            
              shell
              
              
            
          
          [mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true七.启动mysql
            
            
              shell
              
              
            
          
          /usr/local/mysql/support-files/mysql.server start或在mysql/bin目录下,直接启动
            
            
              shell
              
              
            
          
          service mysql start7.1 启动时报错,发现并没有'/var/log/mariadb/mariadb.log'这个路径
Starting MySQL.2021-01-29T09:43:29.326873Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.lists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

那我们就创建, 并给mysql用户授权即可
            
            
              shell
              
              
            
          
          #mkdir /var/log/mariadb
#touch /var/log/mariadb/mariadb.log
#chown -R mysql:mysql  /var/log/mariadb/
7.2 启动时报错,Starting MySQL.2021-01-29T09:45:20.578176Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don
ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

发现没有'/var/lib/mysql'这个路径,则先创建目录mkdir /var/lib/mysql。
Mysql客户端和服务器端是通过初始化mysql.sock 文件来进行通信,所以服务器在启动时需要写入该文件,因此该文件所存放的目录必须双方都具有访问权限。所以,MySQL服务不具备目录 /var/lib/mysql 的写入权限,无法生成mysql.sock文件,自然服务启动时无法找到该文件。给目录 /var/lib/mysql 付予写入权限或者最大权限chmod 777 /var/lib/mysql
            
            
              shell
              
              
            
          
          mkdir /var/lib/mysql
chmod 777  /var/lib/mysql
启动服务,显示成功
            
            
              shell
              
              
            
          
          /usr/local/mysql/support-files/mysql.server start为了以后启动方便,不用每次都进入
/usr/local/mysql/support-files/mysql.server start启动服务,可以直接使用service mysql start 直接启动服务,则添加如下软连接,并重启服务
            
            
              shell
              
              
            
          
          ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
查看服务器的进程信息
            
            
              shell
              
              
            
          
          ps -ef|grep mysql
到这里说明mysql已经安装成功了!!
八.修改密码
首先登录mysql,前面的那个是随机生成的。
            
            
              mysql
              
              
            
          
          mysql -u root -p  回车之后,输入之前的密码
输入密码后报错,ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)。
则输入命令:
            
            
              shell
              
              
            
          
          ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sockTips 出现其他类似问题则:
在'/tmp/mysql.sock'、'/var/lib/mysql/mysql.sock' 查看是否有文件;
若'/var/lib/mysql/mysql.sock'存在,则执行:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 为其创建连接
若'/tmp/mysql.sock'存在,则执行:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock为其创建连接

也可以用下面的方式,设置密码永久有效:
            
            
              mysql
              
              
            
          
          SET PASSWORD = PASSWORD('lgy888..');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES; 
九.支持远程连接
登录成功后,修改密码,支持远程连接
            
            
              mysql
              
              
            
          
          use mysql;
update user set user.Host='%' where user.User='root';
FLUSH PRIVILEGES;
在"安全组"中开放对应3306端口号
设置防火墙对3306端口开放
            
            
              shell
              
              
            
          
          [root@localhost bin]# firewall-cmd --permanent --zone=public --add-port=6379/tcp
FirewallD is not running
失败
systemctl start firewalld.service
成功
success
[root@localhost bin]# firewall-cmd --reload
success
[root@localhost bin]# firewall-cmd --zone=public --query-port=6379/tcp
yes赋予外部访问本数据的权限
            
            
              mysql
              
              
            
          
          grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;十.设置开机自动启动
1、将服务文件拷贝到init.d下,并重命名为mysqld
            
            
              shell
              
              
            
          
          [root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld2、赋予可执行权限
            
            
              shell
              
              
            
          
          [root@localhost /]# chmod +x /etc/init.d/mysqld3、添加服务
            
            
              shell
              
              
            
          
          [root@localhost /]# chkconfig --add mysqld4、显示服务列表
            
            
              shell
              
              
            
          
          [root@localhost /]# chkconfig --list
1、将服务文件拷贝到init.d下,并重命名为mysqld
            
            
              shell
              
              
            
          
          [root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld2、赋予可执行权限
            
            
              shell
              
              
            
          
          [root@localhost /]# chmod +x /etc/init.d/mysqld3、添加服务
            
            
              shell
              
              
            
          
          [root@localhost /]# chkconfig --add mysqld4、显示服务列表
            
            
              shell
              
              
            
          
          [root@localhost /]# chkconfig --list外链图片转存中...(img-5vsG6svt-1699886208744)