linux安装mysql-5.7以及mysql-root用户密码重置的问题

准备工作:CentOS-7,配置好yum源,具体可见我的博客https://blog.csdn.net/kehana/article/details/90932592,最好再挂载好一块空的磁盘,详情见 https://blog.csdn.net/kehana/article/details/113363493

1:查看系统有没有安装过mysql,有的话删掉,步骤如下

#查看是否安装过:rpm -qa|grep mysql

#删除已安装的版本:rpm -e --nodeps XXXXXXXXX   (XXX表示上一条命令查出来的结果)

#再次查询是否删除干净:rpm -qa|grep mysql

#查询所有旧版本mysql对应的目录:find / -name mysql  和   whereis mysql   将查出来的目录rm -rf 删除

#再次查询是否删除完毕 :find / -name mysql  和   whereis mysql 

2:检查系统中是否有mysql用户,没有则创建,如下:

#创建mysql组:groupadd mysql

#创建mysql用户:useradd -d /home/mysql -g mysql -G mysql mysql    -d 表示mysql用户的家目录   -g表示主组  -G表示附属组,具体linux命令可以看我另一篇博客 https://blog.csdn.net/kehana/article/details/90765448  平时能用到的命令在里面都有

3:下载mysql安装包并进行配置安装

mysql官网地址 可以进行选择下载,我这里下载的是  mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz      因为我已经挂载了一个/mysql分区,所以以下mysql的安装文件以及各种目录都在/mysql下面,正规默认的应该是在/usr/local/mysql下面

#解压重命名  tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz  -C /mysql                 mv /mysql/mysql-5.7.24-linux-glibc2.12-x86_64 /mysql/mysql-5.7.24  

#在mysql下面创建data目录    mkdir /mysql/mysql-5.7.24/data

#更改/mysql下目录及文件的所属组及权限     chown -R mysql:mysql /mysql          chmod -R 755 /mysql

#编译并初始化mysql,牢记初始化结束最后一行末尾冒号后的那个密码字符串

cd /mysql/mysql-5.7.24/bin        ./mysqld --initialize --user=mysql --datadir=/mysql/mysql-5.7.24/data --basedir=/mysql/mysql-5.7.24      --datadir就是上面创建的data路径,--basedir表示mysql的安装路径

如果编译初始化过程中报错缺少libaio.so,执行yum -y install libaio*

如果报错缺少libnuma , 执行 yum -y install numactl

#编译初始化完毕之后修改/etc/my.cnf配置文件,添加或者修改一下内容:

[mysqld]

datadir=/mysql/mysql-5.7.24/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
socket=/mysql/mysql-5.7.24/lib/mysql/mysql.sock

symbolic-links=0
#最大连接数
max_connections=600
#将每张表单独存储
innodb_file_per_table=1
#不区分大小写
lower_case_table_names=1
#字符集
character_set_server=utf8

[mysqld_safe]
log-error=/mysql/mysql-5.7.24/log/mariadb/mariadb.log
pid-file=/mysql/mysql-5.7.24/run/mariadb/mariadb.pid

保存退出,可以看到我将里面的/usr/local/mysql 全部换成了 /mysql/mysql-5.7.24

在此处我们做几个软连接,如下:

ln -s /mysql/mysql-5.7.24/lib/mysql/mysql.sock /tmp/mysql.sock

ln -s /mysql/mysql-5.7.24/support-files/mysql.server /etc/init.d/mysql

ln -s /mysql/mysql-5.7.24/bin/mysql /usr/bin/mysql

#启动Mysql

service mysql start

#进入Mysql数据库

mysql -uroot -p(刚刚初始化最后的那个密码,如果忘记了root密码,看接下来的部分

忘记了Mysql的root用户密码

1:修改/etc/my.cnf  在 [mysqld]  下面加入  skip-grant-tables     然后重启数据库   service mysql restart

2:直接输入mysql可进入mysql命令行    show databases;   use mysql;    desc user;  可以看到user表中有个 authentication_string   字段,复制一下

3:update user set authentication_string=password('abcd1234') where user='root' and host='localhost';      flush privileges;

4:exit; 退出数据库,将刚刚在/etc/my.cnf添加的那个skip-grant-tables注释掉,重启数据库

5:mysql -uroot -pabcd12324进入数据库    进入数据库之后可能还会要求你再继续改一次密码,执行    set password=password('1qaz@2wsx');   数据库就可以完美使用了,否则你是执行不了命令的

说明:有其他帖子里面的步骤和我第三步不一致,这个可能是数据库版本的原因吧,他们的步骤是:update user set password=password('abcd1234') where user='root';

           我看了下我的user表中没有password字段,所有就不能set password。你们可以根据自己的数据库来整,具体是上面的第二步中的进到mysql库中,desc user表,看看里面有没有password字段

 

#创建数据库用户并授权,并用IP登录数据库

#mysql数据库新建一个库,新建一个数据库用户,并授权

root用户进入数据库之后创建一个TESTDB库  create database TESTDB;

#创建用户及授权一步搞定:grant all privileges on TESTDB.* to cainiaoke@'%' identified by '1qaz@2wsx';    cainiaoke@*%*   百分号表示用IP或者localhost都行。具体可查看mysql库user这张表的host字段下的数据

#如果想要在系统外部的工具链接数据库,比如使用navicat连接数据库,需要在系统防火墙开放3306端口,操作如下:

1:查看当前系统数据库是否开启:ffirewall-cmd --state  如果没开启请执行:systemctl start firewalld

2:防火墙中添加3306端口开放:firewall-cmd --permanent --zone=public --add-port=3306/tcp    重新加载防火墙:firewall-cmd --reload

此时本地的工具就可以链接mysql数据库了

#删除数据库用户:delete from mysql.user where user='cainiaoke';       flush privileges;刷新数据库授权

 

查看mysql数据库当前所有连接(包括IP等信息)

show processlist;

mysql> show processlist;
+---------+------+--------------------+-------------+---------+------+----------+------------------+
| Id      | User | Host               | db          | Command | Time | State    | Info             |
+---------+------+--------------------+-------------+---------+------+----------+------------------+
| 1380797 | dev  | 192.x.xxx.x50:60041 | NULL        | Sleep   |  628 |          | NULL             |
| 1380799 | dev  | 192.x.xxx.x50:42251 | dev         | Sleep   |  625 |          | NULL             |
| 1380803 | dev  | 192.x.xxx.x50:32889 | NULL        | Sleep   |    5 |          | NULL             |
| 1380952 | dev  | 192.x.xxx.x50:34658 | dev         | Query   |    0 | starting | show processlist |
+---------+------+--------------------+-------------+---------+------+----------+------------------+
杀掉连接

kill ID;

杀掉所有连接

select concat('kill ',id.';') from information_schema.processlist where user='hjgl';

杀掉长连接sleep进程

SELECT ID FROM information_schema.PROCESSLIST t WHERE t.COMMAND='Sleep' and user=hjgl and time >1000;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值