首页 > 数据库 >Centos 7 自定义路径安装 mysql - rpm包自定义路径安装mysql - 测试记录

Centos 7 自定义路径安装 mysql - rpm包自定义路径安装mysql - 测试记录

时间:2023-03-24 16:56:57浏览次数:63  
标签:自定义 mysql root 路径 Mysql password data

序言

就目前而言,笔者绝对rpm包是挺方便的,不过如果想要自定义安装路径,说实话,笔者都不知道怎么改,看网上的都是 tar 包安装,然后更改各种路径,就可以的样子。


rpm 包是笔者的测试过程记录,bug多

rpm包 自定义Mysql安装路径

这里就不介绍安装 rpm 包安装 mysql 的方法,自行查看如下rpm包安装mysql 教程链接:
Centos + Django + Nginx + uwsgi 部署项目-rpm包安装 Mysql 5.x 服务器-删除 Mysql 服务器-自定义安装mysql-utf8编码问题(3)


这里第一次安装mysql容易出现报错:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor

解决方法如下:

1. 修改mysql的初始密码(有两种方法)

1.1 第 1 种方法 (不推荐,无聊时弄出来的)

MySQL第一次启动后会创建超级管理员账号 root@localhost,初始密码存储在日志文件中:/var/log/mysqld.log

查看 Mysql 服务器初始密码的命令如下:

grep 'temporary password' /var/log/mysqld.log

通常而言,界面显示的 A temporary password is generated for root@localhost: 后面就是 Mysql 服务器的初始密码

[root@localhost ~]# mysql -uroot -p
Enter password: 输入 Mysql 初始密码

进入 Mysql 服务器命令终端,输入命令如下:

mysql> ALTER USER  'root'@'localhost' IDENTIFIED BY 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 
#密码太弱

如果密码太弱了,就会报错 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

或者是

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

1.1.1 Mysql 初次修改密码,因密码太弱报错的多种解决方法如下:

  1. 使用复杂密码,Mysql 数据库默认的密码策略是要包含数字、字母及特殊字符;
  2. 如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即validate_password_policy(以及validate_password_length等相关参数),使其支持简单密码的设定,具体方法可以参考:如何修改 Mysql 的密码策略:传送门

进入 Mysql 服务器 mysql> 使用查看 Mysql 密码策略命令:

 mysql> SHOW VARIABLES LIKE 'validate_password%'; 

修改 Mysql 密码策略安全等级命令:

 mysql> set global validate_password_policy=LOW;

设置限制 Mysql 密码长度为 6 个字符(当然这个长度可以自己选择,但是只有配置了密码策略为 LOW 才可以,仅仅只检查密码长度)

 mysql> set global validate_password_length=6;
  1. 修改默认安装 Mysql 的配置文件/etc/my.cnf(配置文件默认是该路径下),添加validate_password=OFF,保存并重启 MySQL 服务器

1.2 第 2 种方法 (推荐)

在mysql 的配置文件 /etc/my.cnf 里面[mysqld]下面加入如下内容:

[mysqld]

skip-grant-tables

然后就可以不用输入密码,就能登录mysql

mysql -uroot -p

输入命令,直接回车就能进入了!

mysql>

use mysql;

mysql>

update user set authentication_string=password('新密码') where user='root';

刷新权限

mysql>

flush privileges;

退出mysql

mysql>

quit

或者
mysql>

exit

在这里可能会想到,我为 root 用户设置了mysql密码,那么我之前在/etc/my.cnf 内配置的 skip-grant-tables 还有没有作用呢?答案是没有了,优先级是看该用户是否设置了密码,不过初始密码不是已经为 root 设置了密码吗?看来这又是一个挠人的问题!
之后重新启动 mysql 服务器

service mysqld restart

先不要把 skip-grant-tables 给删了,先保留一下,后面不要了再删,不然下面使用命令 mysqladmin -uroot -p shutdown 会报如下错误:

mysqladmin: connect to server at 'localhost' failed
error: 'Your password has expired. To log in you must change it using a client that supports expired passwords.'

还有最后不要了记得删掉这个skip-grant-tables配置,否则会有如下问题出现:

mysql设置validate_password=off后添加skip-grant-tables服务启动失败

2. 关闭 mysqladmin

mysql, mysqladmin, mysqld之间的区别: 传送门

把MySQL服务进程停掉,bash终端命令如下:

mysqladmin -u root -p shutdown

相关介绍:

MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。下面就介绍一下这几个目录。

1)、数据库目录
/var/lib/mysql/
2)、配置文件
/usr/share/mysql(mysql.server命令及配置文件)
3)、相关命令
/usr/bin (mysqladmin mysqldump等命令)
4)、启动脚本
/etc/rc.d/init.d/ (启动脚本文件mysql的目录)

3. 更改MySQL目录

MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/work/data/home/work/data 只是举例,请自行更改为自己指定的自定义目录)下需要进行下面几步:

3.1 创建自定义路径目录(自定义目录位置请自行更改)

mkdir -p /home/work/data/{data,log,tmp}

3.2 移动 mysql 到自定义目录

mv /var/lib/mysql /home/work/data

这样就把MySQL的数据文件移动到了/home/work/data/mysql

3.3 找到 my.cnf 配置文件

如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

3.4 编辑MySQL的配置文件/etc/my.cnf

为保证MySQL能够正常工作,需要指明 mysql.sock 文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行内,等号右边的值
为:/home/work/data/mysql/tmp/mysql.sock 。操作如下:(放在了 tmp/ 文件夹内)

[mysqld]

socket=/home/work/data/mysql/tmp/mysql.sock

查看是否存在 mysql 用户,及其所属的用户组

id mysql

确保mysql下的文件属主都为mysql(下面的命令是在mysql目录下执行的)

 chown -R root.root /home/work/env/data/mysql/./
 chown -R mysql.mysql /home/work/env/data/mysql/data
 chown -R mysql.mysql /home/work/env/data/mysql/tmp
 chown -R mysql.mysql /home/work/env/data/mysql/logs

标签:自定义,mysql,root,路径,Mysql,password,data
From: https://www.cnblogs.com/Loki-Severus/p/17252656.html

相关文章

  • Centos 7 mysql 5
    @目录问题解决方法参考链接:参考链接问题解决方法参考链接:mysql禁用validate_关闭掉mysql8和mysql5.7的密码验证插件validate_password原来的mysql配置:mysql>SHOWV......
  • Centos 7 - 第一次登陆 Mysql 数据库 修改密码问题 ERROR 1045 (28000) - 临时生效方
    这里第一次安装mysql容易出现报错:ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpasswor解决方法如下:1.修改mysql的初始密码(有两种方法)1.1......
  • Centos + Django + Nginx + uwsgi 部署项目-rpm包安装 Mysql 5
    笔者发觉下面这个方法可能有些缺陷,适合自己的就看下,如果是新开的虚拟机有可能不适用下面的方法,云服务器开的LinuxCentos系统应该可以。虚拟机安装Mysql的具体方法,可以看......
  • mysql8免安装版安装教程
    windows安装mysql8免安装版教程,附网盘资源目录windows安装mysql8免安装版教程,附网盘资源一、前言二、安装配置流程2.1、下载并解压2.2、设置Mysql配置文件2.3、初始化mys......
  • java mysql+sqlite普通查询
    importjava.sql.*;publicclassTest{publicstaticvoidmain(String[]args){try{//newTest().queryMySql();newTest......
  • m1 docker mysql8/arm64v8 解决 `only_full_group_by` 问题
    m1dockermysql8/arm64v8解决only_full_group_by问题问题原因MySql从5.7版本开始默认开启only_full_group_by规则,规则核心原则如下,没有遵循原则的sql会被认为是不合......
  • MySQL错误ERROR 2003 (HY000) Can't connect to MySQL server .' (111)
    在MySQL中,如果访问/连接MySQL数据库时遇到“ERROR2003(HY000):Can'tconnecttoMySQLserveron'xxx.xxx.xxx.xxx:xxx'(111)”这个错误,我们应该从哪些方面进行考虑和......
  • windows安装mysql超详细
    windows系统下安装mysql1、下载mysql安装包https://downloads.mysql.com/archives/community/   #mysql安装包下载地址         2:将解压文件解......
  • 第六节 使用ISM Web组态软件的自定义数据
    文章目录前言一、ISM的自定义数据支持哪些运算二、使用说明1.取位运算2.复杂数据运算3.查看自定义数据结果总结前言自定义数据是数据模型的额外补充,比如有的数据模型里面......
  • Linux下Mysql数据库的基本使用
    (Linux下Mysql数据库的基本使用)一、Mysql的delete删除语法1.删除数据库①使用drop删除mysql>mysql>showdatabases;+--------------------+|Database......