MySQL安装和初始化
MySQL安装、卸载,以及密码初始化流程
Ubuntu下相关操作
卸载MySQL
1 | ## 若有必要,可以先备份相关数据 |
安装最新版本
1 | $ sudo apt install mysql-server |
初始登陆
- root用户下可以直接输入
mysql
命令,非root用户数据sudo mysql
- 可以查看
/etc/mysql/debian.cnf
文件,使用debian-sys-maint
这个帐号登陆
了解
配置文件路径: /etc/mysql/my.cnf
关于参数修改,可能会修改 /etc/mysql/mysql.conf.d/mysqld.cnf
,my.cnf加载了这个文件
数据存储路径: /var/lib/mysql
日志存储路径: /var/log/mysql
Centos下相关操作
卸载Mysql
1 | # 查找mariadb并卸载 |
安装
1 | ## 先检查临时目录权限 |
修改数据库目录所有者
1 | $ sudo mysqld --initialize --user=mysql |
启动服务
1 | $ sudo systemctl start mysqld |
初始登陆
查看root初始密码
1 | $ sudo cat /var/log/mysqld.log | grep password |
修改初始密码
1 | mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passsword'; |
注意
在ubuntu下,不能使用mysql> ALTER USER USER() IDENTIFIED BY 'new_passsword';
,会报错
在centos下,初始密码不能过于简单,必须是数字字母和符号的集合,ubuntu下没有要求
而且很奇怪,两个同样的版本,为什么关于校验的参数会不一样
可能后面会统一吧
忘记密码?
忘记密码,不用慌,我们可以重置密码。这一步,主要是用到mysqld的跳过授权表skip-grant-tables
这个选项
第一步, 编辑配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf
或者/etc/my.cnf
添加如下配置
第二步,重启mysql服务
1
2
3
4# ubuntu下
$ sudo systemctl restart mysql
# centos下
$ sudo systemctl restart mysqld第三步,登陆,修改密码
1
2
3
4
5
6
7
8
9
10
11# 直接使用mysql, 可能登陆
$ mysql
# 登陆后刷新授权表
mysql> flush privileges;
# 更改密码
mysql> alter user 'root'@'localhost' identified by 'new_password';
# 再次刷新刷新授权表
mysql> flush privileges;
# 退出
mysql> exit到目前为止,已经可以使用重置后的密码进行登录了
第四步,还原配置文件。
还原配置文件后,可以重启,也可以不重启,因为授权表已经刷新到内存了
第五步, 检查端口是否异常
这一步,我被坑了,后面我无法通过远程的方式连接mysql, 搜索了很多,发现和skip_networking 有关。
This variable controls whether the server permits TCP/IP connections. By default, it is disabled (permit TCP connections)
官方说这个参数是用来控制服务器是能通过TCP/IP连接, 默认是
OFF
,也就是允许连接Because starting the server with
--skip-grant-tables
disables authentication checks, the server also disables remote connections in that case by enablingskip_networking
.导致这个问题的原因是因为我们使用了
skip-grant-tables
这个参数,服务器就自动开启了跳过网络参数1
2
3
4
5
6
7
8
9
10
11
12
13
14问题查看
show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 0 |
+---------------+-------+
show variables like 'skip_networking';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | ON |
+-----------------+-------+解决方式
将配置文件中的参数
port=3306
重新启用,然后重启mysql服务即可。
- 标题: MySQL安装和初始化
- 作者: Yaurora
- 创建于 : 2023-03-19 11:00:00
- 更新于 : 2023-03-22 00:02:54
- 链接: https://jingyu.life/2023/03/19/db/mysql/install&init/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。