linux下mysql-5.7.26安装

本文详细介绍了MySQL5.7.26在Linux服务器上的安装步骤,包括解压、用户组及权限设置、配置文件创建、初始化数据库、服务启动与密码重置,以及解决外网连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面已经安装了jdk,现在安装mysql

mysql-5.7.26安装与前面的版本不同,这里记录下安装过程

参考文献:

  • https://segmentfault.com/a/1190000012703513?utm_source=tag-newest
    https://blog.youkuaiyun.com/Love_XO/article/details/81502503

1、下载mysql-5.7.26,这里就不说了,自己去官网上下载

2、上传下载的mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz到服务器,我上传到 /opt 目录

3、在/usr/local/中解压压缩包,并改名为mysql

cd /usr/local/

tar -xzvf /opt/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql

4、创建用户组mysql,创建用户mysql并将其添加到用户组mysql中,并赋予读写权限

groupadd mysql

useradd -r -g mysql mysql

chown -R mysql mysql/

chgrp -R mysql mysql/

5、创建配置文件

vim /etc/my.cnf

#复制以下内容

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names = 1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

max_connections=5000

default-time_zone = '+8:00'

可以在my.cnf中加上

skip-grant-tables

这句是为了启动mysql服务后,登录mysql时用来跳过密码验证的过程,修改密码后把它删掉就好。

6、初始化数据库

#先安装一下这个东东,要不然初始化有可能会报错
yum install libaio
#手动编辑一下日志文件,什么也不用写,直接保存退出
cd /var/log/

vim mysqld.log
:wq

#这两步在 /var/log/ 目录中执行
chmod 777 mysqld.log
chown mysql:mysql mysqld.log

#初始化mysql服务
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

7、至此mysql服务已配置完,启动mysql服务

 接下来就是用sql来修改root的密码
 如果上面的 /etc/my.cnf中加了 skip-grant-tables ,则直接输入 mysql就可以进去


1、进入到mysql目录:
   cd /usr/local/mysql
2、执行命令:
   启动: service mysqld start   重启:service mysqld restart
3、登录mysql   
   这里注意:5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
	mysql> use mysql;
	mysql> update user set authentication_string=password("你的新密码") where user="root";
	mysql> flush privileges;
	mysql> quit

到这里root账户就已经重置成新的密码了。编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

下面说下外网链接mysql问题

使用navicate远程连接数据库出现1045 access denied for user ‘root’@‘localhost’ using password yes

在mysql命令行中执行
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456'); 
GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
 
若以上方法行不通则用:
use mysql; 
UPDATE user SET Password=PASSWORD('123456') where USER='root';
flush privileges;  

第一个方法解决了我的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值