4.CentOS7安装MySQL5.7

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 start

7.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.sock

Tips 出现其他类似问题则:

在'/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/mysqld

2、赋予可执行权限

shell 复制代码
[root@localhost /]# chmod +x /etc/init.d/mysqld

3、添加服务

shell 复制代码
[root@localhost /]# chkconfig --add mysqld

4、显示服务列表

shell 复制代码
[root@localhost /]# chkconfig --list

1、将服务文件拷贝到init.d下,并重命名为mysqld

shell 复制代码
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

2、赋予可执行权限

shell 复制代码
[root@localhost /]# chmod +x /etc/init.d/mysqld

3、添加服务

shell 复制代码
[root@localhost /]# chkconfig --add mysqld

4、显示服务列表

shell 复制代码
[root@localhost /]# chkconfig --list

[外链图片转存中...(img-5vsG6svt-1699886208744)]

相关推荐
丘狸尾1 小时前
[cisco 模拟器] ftp服务器配置
android·运维·服务器
van叶~3 小时前
探索未来编程:仓颉语言的优雅设计与无限可能
android·java·数据库·仓颉
暗碳4 小时前
adb无线连接手机后scrcpy连接报错ERROR: Could not find any ADB device
adb·智能手机
Crossoads7 小时前
【汇编语言】端口 —— 「从端口到时间:一文了解CMOS RAM与汇编指令的交汇」
android·java·汇编·深度学习·网络协议·机器学习·汇编语言
li_liuliu8 小时前
Android4.4 在系统中添加自己的System Service
android
C4rpeDime10 小时前
自建MD5解密平台-续
android
鲤籽鲲12 小时前
C# Random 随机数 全面解析
android·java·c#
m0_5485147716 小时前
2024.12.10——攻防世界Web_php_include
android·前端·php
凤邪摩羯16 小时前
Android-性能优化-03-启动优化-启动耗时
android
凤邪摩羯16 小时前
Android-性能优化-02-内存优化-LeakCanary原理解析
android