随笔- 310  文章- 1  评论- 0  阅读- 86066 

下载安装包

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

1
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

  

 安装前检查是否自带安装 MySQL

1
2
3
4
5
6
7
8
9
10
rpm -qa | grep mysql
 
#如果有卸载
rpm -e mysqlXXX  // 普通删除模式
rpm -e --nodeps mysqlXXX  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
 
#然后再检查否存在 mariadb 数据库,如果有,同样卸载即可
rpm -qa | grep mariadb
 
注:我这里是存在的,网上好多都是让卸载的,我是用普通用户安装的,我们不妨试试不卸载就安装,有问题再搞呗,所以选择不卸载 mariadb安装

解压安装包&配置

1
2
3
4
5
6
7
8
9
tar -zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz -C data1/mysql
 
#添加环境变量
export MYSQL_HOME=data1/mysql
 
source ~/.bashrc
 
#创建目录
mkdir $MYSQL_HOME/data $MYSQL_HOME/log

 

创建/data1/mysql/my.cnf文件配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[mysqld]
# 这步是为了跳过root的密码验证,如果是你个人使用的话,其实不用密码更方便
#skip-name-resolve
#skip-grant-tables 
#设置3306端口
port = 3306
#这个不需要自己创建,把路径指定好就行
socket=/data1/mysql/mysql.sock 
 
# 设置mysql的安装目录,我用的是刚才bashrc里设置的MYSQL_HOME
# 特别注意,不要直接写$MYSQL_HOME,要打完整的路径,不然mysqld启动时会有奇怪的错误
basedir=/data1/mysql
# 设置mysql数据库的数据的存放目录, 这里就是刚才我们创建的data目录的路径
datadir=/data1/mysql/data
log-error=/data1/mysql/log/mysql.log
pid-file=/data1/mysql/mysql.pid
 
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#lower_case_table_name=1
max_allowed_packet=16M
 
#plugin所在目录 这步很重要,这个得手动指定,不然会报错。该目录不需要手动创建,在$MYSQL_HOME/lib下面有
plugin_dir=/data1/mysql/lib/plugin

初始化mysql服务以及创建数据库

1
2
3
4
5
6
1.初始化
$MYSQL_HOME/bin/mysqld --initialize --user=user --basedir=$MYSQL_HOME/ --datadir=$MYSQL_HOME/data/
 
2.初始化之后,进日志目录,查看日志找临时密码
cat /data1/mysql/log/mysql.log
 A temporary password is generated for root@localhost: xxxx

启动mysql 

1
2
3
$MYSQL_HOME/bin/mysqld --defaults-file=$MYSQL_HOME/my.cnf --user=user
ps -ef|grep mysql #启动之后查看进程
ps -ef|grep mysql|grep -v grep |awk '{print $2}'|xargs  kill -9 #杀死mysql进程

 

mysql5.7 密码过期问题 

报错:
ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
翻译:错误1862(HY000):你的密码已经过期。登录必须改变它使用一个客户端,支持过期的密码。

解决方法:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1、 用忽略授权表的方法进入mysql
        vi /data1/mysql/my.cnf     
        [mysqld]     
        skip-grant-tables
    重启mysql  
2、进入mysql,查看root用户的详细信息
# mysql -u root -p   > use mysql       
                
3、把password_expired 改成不过期
        > update user set password_expired="N" where user="root";      
        > flush privileges;       
        > quit
4、把 /data1/mysql/my.cnf 的
     skip-grant-tables 这行注释掉,重启mysql

 

  

 

 

 

 

 posted on   boye169  阅读(1208)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示