> 技术文档 > 数据库2:超详细的初始化MySQL方法 --图文版_mysql初始化

数据库2:超详细的初始化MySQL方法 --图文版_mysql初始化

下载并安装数据库见前一篇文章《数据库1:超详细的下载并安装合适的MySQL版本 --图文版》

1.设置存放数据的目录(可自由选择)

mkdir -p /data/01/data

2.创建专门管理MySQL的用户

useradd mysql

3.改变目录所有者为mysql

chown -R mysql. /data/01/data

4.非安全模式初始化数据库

mysqld --initialize-insecure --user=mysql --basedir=/usr/mysql --datadir=/data/01/data

各字段含义如下

  • mysqld:  核心程序命令。MySQL 的守护进程程序

  • --initialize-insecure: 初始化核心参数(不安全的初始化)。这个选项告诉 MySQL 初始化过程中使用不安全的方式生成 root 密码,通常在测试或开发环境中使用,不会设置安全的密码策略。

  • --user=mysql: 数据库管理用户。指定 MySQL 进程在运行时使用的用户,这里是用户mysql管理数据

  • --basedir=/usr/mysql: 核心程序目录。指定 MySQL 的安装目录根路径,对这个目录下的程序做初始化

  • --datadir=/data/01/data: 数据存储目录。指定 MySQL 存储数据的目录,是数据库实际存储数据的位置,初始化后生成的数据存储在这里

无视警告即可,或者处理也行,没有error就行

5.编写配置文件

vim /etc/my.cnf

模板如下:

#客户端的配置信息
[mysql]
socket=/tmp/mysql.sock
#服务端的配置信息
[mysqld]
user=mysql
basedir=/usr/mysql
datadir=/data/01/data
socket=/tmp/mysql.sock

6.启动运行数据库服务并验证

因为是二进制安装,所以没有systemctl单元文件,但是可以写一个

6.1查看数据库服务默认启动脚本文件

ls -l /usr/mysql/support-files/mysql.server

6.2复制数据库启动脚本文件到/etc/init.d并命名为mysqld

6.3查看是否有可执行权限

/etc/init.d目录在用于存放系统服务的启动脚本,这些脚本负责管理系统启动时哪些服务要被启动,以及如何停止或重启这些服务

6.4启动数据库

/etc/init.d/mysqld start

6.4.1验证

6.4.2查看进程

6.4.3查看端口

33060端口信息主要用于实现mysqlx协议的通讯过程,利用mysqlx协议可以实现利用mysql-shell功能组件,对数据进行key-value操作,即识别json文件信息,进行远程管理,若要关闭,在配置文件中加入mysqlx=0,然后/etc/init.d/mysqld restart即可

6.5设置开机自启

chkconfig命令控制/etc/init.d下的脚本文件开机自启

6.5.1chkconfig --add mysqld

验证开机自启

chkconfig --list

6.5.2或者可以写入启动命令到/etc/rc.local

echo \"/etc/init.d/mysqld start\" >> /etc/rc.local

6.6  systemctl通过脚本间接启动,此方法无法开机自启

systemctl enable mysqld

systemctl start mysqld

systemctl status mysqld

ll /etc/init.d -d

注意Loaded字段与编写systemctl单元文件启动时的区别

不能多个启动/停止方法混用

7.进入数据库

mysql

7.1设置密码

mysqladmin password \'mysql\'

然后用密码登录

mysql -uroot -pmysql

8.安全模式初始化数据库

先删除之前的非安全模式初始化的数据

rm -rf /data/01/data/

然后安全模式初始化数据库

mysqld --initialize --user=mysql --basedir=/usr/mysql --datadir=/data/01/data

红线出是临时登录密码

9.安全模式初始化数据库后启动并进入数据库

启动后仅是mysql命令无法再登录数据库

/etc/init.d/mysqld start

mysql

需要使用mysql -uroot -p进行root用户的密码登录,密码是之前初始化时系统给出的临时登录密码

临时密码只能用于登录数据库,登录之后需要立即重置密码

10.重置数据库密码

alter user root@\'localhost\' identified by \'123456\';

11.最后退出数据库,再用新密码重新进入数据库

quit

mysql -uroot -p123456

12.后续可以再次修改密码

mysqladmin -uroot -p123456 password \'new123456\'

至此,可以进行操作数据库了

show databases;

不同版本的数据库的各种方法略有不同,本文使用的是8.0.26版本MySQL