mysql 8.0 my.cnf_Mysql8.0版二进制安装(my.cnf文件灵活编写)

本文档详述了在CentOS 7.6上安装MySQL 8.0.21二进制包的步骤,包括卸载旧版本、解压安装、初始化数据库、编辑my.cnf配置文件,并启动服务。在my.cnf配置中,重点关注了端口、数据目录、最大连接数、字符集和慢查询日志设置。在安装过程中,遇到了密码复杂性要求导致的修改密码问题,最后通过特定方式解决了这个问题。
摘要由CSDN通过智能技术生成

新版本mysql二进制安装遇到不少坑(慢慢磨合吧)

系统环境:centos7.6

这里我安装的是mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz      (官网有各种大小的包,这里我下载的是二进制的包,便于修改配置)

官网下载:https://dev.mysql.com/downloads/mysql/

888bd9cf1d9314b67b87553bdfa9dd47.png

下载好后,开始安装:

1,第一步 先卸载可能会影响安装的包

[root@localhost ~]# rpm -q mysql mysql-server mariadb mariadb-server

未安装软件包 mysql

未安装软件包 mysql-server

未安装软件包 mariadb

未安装软件包 mariadb-server

如果出现没有卸载的包,需全部卸载

2,第二步上传mysql8.0.21这个包,开始安装

#tar xf mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz -C /usr/local/                           //这里解压到/usr/local下

#cd /usr/local

#mv mysql-8.0.21-linux-glibc2.17-x86_64-minimal/ mysql                                                //改个名

#useradd -M -s /sbin/nologin mysql                                                                                   //创建个用户

#chown -R mysql:mysql /usr/local/mysql/                                                                         //给个权限

#/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize                //初始化一下数据库(初始前先做配置文件,如下步骤)

3,第二步,修改my.conf配置文件

==================================================================

-----这里先对配置文件进行一个说明(适用于实际生成环境下)--------

[mysqld]

# 监听端口

port=3306

# 安装目录

basedir=/usr/local/mysql

# 数据目录

datadir=/usr/local/mysql/data

# 最大连接数

max_connections = 100

# 默认数据库引擎

default-storage-engine = InnoDB

# 字符集

character-set-server=utf8

# 错误日志

log-error = /usr/local/mysql/log/error.log

# 开启慢日志

slow_query_log = 1

# 慢查询日志时间阈值 默认是10S

long-query-time = 30

# 慢查询日志存放路径

slow_query_log_file =  /usr/local/mysql/log/show.log

# 记录那些由于查找了多余1000次而引发的慢查询

min_examined_row_limit = 1000

# 记录由Slave所产生的慢查询

log-slow-slave-statements

# 如果运行的SQL语句没有使用索引,则将这条SQL语句记录到慢查询日志文件中

log-queries-not-using-indexes

--------------------------配置文件是以上内容,保存退出后,开始初始化---------------------------------

# mkdir data

# mkdir log

# touch log/error.log

# chown -R mysql. *

# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

这里生成的密码等下会用到

# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

# chmod +x /etc/rc.d/init.d/mysqld

# chkconfig --add mysqld

# service mysqld start

# ss -naltp

# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

# source /etc/profile

# mysql_secure_installation

# mysql -uroot -p

==================================================================================

这里我没有用到以上配置修改,只针对此次演示做了简单配置,如下:

[mysqld]

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

symbolic-links=0

[mysqld_safe]

log-error=/usr/local/mysql/data/mysql.log

pid-file=/usr/local/mysql/data/mysql.pid

#

!includedir /etc/my.cnf.d

4,第四步,做启动文件

#cd /usr/local/mysql/support-files

#cp mysql.server /etc/init.d/mysqld

#chmod +x /etc/init.d/mysqld

#chkconfig --add mysqld

#ln -s /usr/local/mysql/bin/* /usr/local/bin/

#systemctl start mysqld                                                         //启动mysql

5,第五步,修改密码(注:这里我遇到一个问题,修改密码时总有报错,之后上网查后,是mysql8.0变得更加”严谨“了!密码要复杂的,不然不能修改!)

ecac5b5dbb51d50092627f96314da049.png

(我是为了测试,这里我没再往下修改密码了,我选择放空密码,但Mysqladmin不能直接放空密码,没办法,新版本严谨性还是很强的!)

6,第六步,其实到第五步,mysql的安装就已经完成了,这里我是不服“严谨”,选择跳过验证,进入mysql将密码放空!

[root@localhost ~]# systemctl stop mysqld

[root@localhost ~]# ps aux | grep mysqld

#mysqld_safe --skip-grant-tables &

#mysql                                                                              /   /   进入mysql

修改密码

mysql> show databases;                      //查询库

mysql> use mysql                                 //进入库

mysql> show tables;                             //查询表

mysql> desc user;

mysql> select user,authentication_string from user;                    //查看用户详细表信息

mysql> update user set authentication_string=PASSWORD('123456') where user='root';                       //修改密码

mysql> flush privileges;                                                                                                //生效

mysql> exit

这里又遇到一个尴尬的问题(也是我发现新版本的变态地方)

当我按以上步骤走,到修改密码这一步,出现报错,提示说一个一个输入??????

6ad19ddcc7f9954a4b83253d19ace0bb.png

(这里我以为我语法有问题,另开了一台以前mysql版本5.6试了一下没问题!!!!!我靠??)

之后找了官方文档,才明白怎么回事,mysql8.0新版本sql语句有一点点的变化,简单说就是两种操作不能同时一起执行,需分开一个一个执行???(具体可以上官网查看官方文档)

我只能改进命令(将root登陆密码改为空)如图:

#update user set authentication_string = '' where user = 'root';

d3b61122d8a96e15d105cfe9628a96aa.png

退出mysql后,再用空密码进一次mysql

然后执行以下操作:

# ALTER USER USER() IDENTIFIED BY 'new password';                       ##这里就可以添加你需要的密码......了

7fce3cf6131fc84492952d05bead220e.png

此时再就没有报修改密码错误了!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值