Linux 下 MySQL8.0 安装踩坑以及配置文件、修改初始密码
发布时间:2018-11-27 11:16,
浏览次数:1599
, 标签:
Linux
MySQL
最近装了国产的基于Linux的操作系统 deepin,整体感觉还不错,想详细了解的可以去我的公众号【大学IT圈】了解。
这篇文章来记录我在 Linux 上安装 MySQL8 的过程。
首先下载安装包
官网地址:https://dev.mysql.com/downloads/mysql/
下载地址(64位):https://dev.mysql.com/downloads/file/?id=480751
需要 32 位的可以去官网地址找。
下载的文件应该是一个 mysql*.tar.xz 格式的压缩包,这里需要先对 .xz 解压
xz -c mysql*.tar.xz
结果是一个 tar 文件,解压即可(在这里 * 号不代表通配符,仅表示省略,使用时换成自己的文件名)
tar -xvf mysql*.tar mv mysql* /usr/local/mysql
OK,到这里我们就得到 MySQL 的文件夹了,并且将他移动到了 /usr/local 目录下改名为 mysql 。
在这里我们新建一个 mysql 用户组和用户用来运行 mysql,这样可以提高系统的安全行性。
groupadd mysql useradd -M -g mysql -s /sbin/nologin mysql passwd mysql
上面的命令新建一个用户组,再新建一个用户并且不可以登录,不创建家目录。第二句命令给 mysql 用户改密码。
我们在根目录下新建一个 data 目录存放 mysql 数据的存放目录。
sudo mkdir -p /data/mysql sudo chown -R mysql.mysql /data
创建 /data 目录并且将目录属主设置为 mysql.
接下来创建 mysql 的配置文件 /etc/my.cnf
sudo vim /etc/my.cnf
# MySQL 配置文件, #参考:http://blog.51cto.com/zhangxinqi/2178407 #
https://www.cnblogs.com/lyq863987322/p/8074749.html # 数据库目录 /data/mysql
[client] port=3306 # mysql socket 文件存放地址 socket=/tmp/mysql.sock # 默认字符集
default-character-set=utf8 [mysqld] server-id=1 # 端口 port=3306 # 运行用户
user=mysql # 最大连接 max_connections=200 socket=/tmp/mysql.sock # mysql
安装目录(解压后文件的目录) basedir=/usr/local/mysql # 数据目录(这里放在我们新建的 /data/mysql 下)
datadir=/data/mysql pid-file=/data/mysql/mysql.pid init-connect='SET NAMES
utf8' character-set-server=utf8 # 数据库引擎 default-storage-engine=INNODB
log_error=/data/mysql/mysql-error.log
slow_query_log_file=/data/mysql/mysql-slow.log # 跳过验证密码 #skip-grant-tables
[mysqldump] quick max_allowed_packet=16M EOF
OK,到这里配置文件就建好了,上面是我自己的配置,在 mysql 启动的时候就会自动读取这个配置文件。
可能会有好几个地方有 mysql 的配置文件,它的读取顺序是这样的
* /etc/my.cnf
* basedir/my.cnf
* datadir/my.cnf
* –defaults-extra-file #在读取全局配置文件之后,读取用户配置文件 (~/.my.cnf)之前,读取extra指定的参数文件
* ~/.my.cnf
所以我们在 /etc 下的配置文件 my.cnf 是第一个读取的文件,读到这个文件后就不会在读后面路劲中的配置文件。
现在让我们进入解压后的 mysql 目录,进行 mysql 初始化:
bin/mysqld --initialize
安装的结果是这样的:
在橘色线框中的部分,是自动生成的 root 密码,待会儿我们要用这个密码进行登录。
在我重装 mysql 的时候,遇到了初始化的时候没有任何输出的问题,也没有找到日志文件,结果不知道初始密码是什么,只能通过跳过登录验证的方式重置密码。
启动 MySQL
sudo ./support-files/mysql.server start
OK,启动成功,接下来登录 MySQL
bin/mysql -u root -p
然后输入刚刚自动生成的 root 密码即可
修改初始密码
整个过程都比较顺利,没想到在这里踩坑了,试了好几个命令都这样的报错
ERROR 1820 (HY000): You must reset your password using ALTER USER statement
before executing this statement.
最后执行以下三个命令之一成功。
下面三个命令任选其一
alter user 'root'@'localhost' identified by 'new password'; ALTER USER USER()
IDENTIFIED BY 'new password'; ALTER USER 'root'@'localhost' IDENTIFIED WITH
mysql_native_password BY 'new password';
OK,安装成功
联系我请移步公众号:大学IT圈