1.yum remove mariadb 卸载原先的 mariadb
#把 mariadb 卸载,以免与编译的 mysql 产生冲突
2.chown -R mysql:mysql /usr/local/mysql57
#重新修改权限,目的是在初始化数据库时,确保 /data/mysql 目录是mysql 用户可读写的。
3.提供配置文件, my.cnf 默认配置详情如下,可以自己建立
[root@mysql-80 /usr/local/mysql57/bin]# cat /etc/my.cnf
[client]
port=3306
socket=/data/mysql/mysql.sock
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
skip-name-resolve
user=mysql
port=3306
basedir=/usr/local/mysql57
datadir=/data/mysql
tmpdir=/tmp
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
4.将编译好的 mysql57/bin 里面的命令,加入到 $ PATH 变量中
PATH=$PATH:/usr/local/mysql57/bin >> /etc/profile 中,永久生效source /etc/profile 重新读取生效
5.初始化数据库
[root@mysql-80 mysql]# /usr/local/mysql57/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
#命令参数解释:
- -defaults-file : 指定MySQL配置文件路径,也就是 my.cnf,这里面有我们刚才配置好的参数
- -initialize : 初始化随机密码,注意,初始化的密码是一个过期密码,登录后需要立刻修改密码
–user: 指定运行用户
6.根据提示,找到生成的初始密码, 在自己的mysqld.log 的 日志文件中。我们可以grep password 来把临时密码找出来,或者直接一行一行地去看。
7.Mysql的启动以及登录
启动:
[root@mysql-80 mysql]# /usr/local/mysql57/support-files/mysql.server start
#启动mysql 服务器
[root@mysql-80 ~]# /usr/local/mysql57/support-files/mysql.server reload
#重载
[root@mysql-80 mysql]# /usr/local/mysql57/support-files/mysql.server stop
#停止数据库
登录:
注意这个是你的数据库初始化生成的密码,不要直接复制我的
[root@mysql-80 mysql]# /usr/local/mysql57/bin/mysql -uroot -p"FQfvVm0zfa;1"
#注意这个是你的数据库初始化生成的密码,不要直接复制我的
登录后,会提示你必须修改密码,还提示了用什么方法修改。如下图所示:
按照提示来:(注意分号结尾)
方法一:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123123';
#成功后修改新密码。
mysql> flush privileges;
方法二,可以 修改字段,但是不会引起 用户密码最后一次修改时间的变化 :
mysql> update mysql.user set authentication_string=password("[email protected]");
mysql> flush privileges;
8.忘记Mysql密码
进入配置文件,进行如下修改:
[root@mysql1 ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables
#跳过授权表
#[mysqld] 加载服务器标签
使用 skip-grant-tables 进入 mysql服务器,
可以不需要 root 密码,但是同时, 不能做 授权修改。
[root@mysql1 ~]# /usr/local/mysql57/support-files/mysql.server restart
[root@mysql1 ~]# /usr/local/mysql57/bin/mysql
#无密码进入 ,使用update语句,更新自己的root密码
因为在不加载grant - tables的情况下,grant 语句, alter user 语句,都无法使用。如果使用的话会报错,如下图:
说你的数据库运行在skip-grant-tables选项下,所以它不能。
mysql> update mysql.user set authentication_string=password("[email protected]");
mysql> flush privileges;
mysql> exit
[root@mysql1 ~]# vim /etc/my.cnf
[mysqld]
#skip-grant-table
#注释掉这个选项
[root@mysql1 ~]# /usr/local/mysql57/support-files/mysql.server reload
这次的分享到此结束,感谢您的阅读!如有问题,可以一起探讨,我的QQ:2072326799