1、查看Linux中是否安装了Mysql或者Maridb(Centos7系统会默认安装Maridb)
rpm -ivh |grep mysql
rmp -ivh |grep mari*
2、若存在会打印mysql或者maridb信息,若不存在则什么都不会显示。卸载mysql或者maridb
1)卸载mysql及maridb的组件
yum -y remove mysql*
yum -y remove mari*
2)删除mysql或maridb的数据
rm -rf /var/lib/mysql/*
3、下载mysql的repo源
[root@localhost ~]# cd /usr/local/src/ //注:该路径自己选择
[root@localhost src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
[root@localhost src]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
[root@localhost src]# yum -y install mysql-server
注:若无wget命令则先安装wget命令
yum -y install wget
4、配置my.cnf文件
输入vim /etc/my.cnf进入配置文件,按ins启动编辑,写入下面代码,然后按esc输入:wq!强制保存并退出
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server_id=1
expire_logs_days=3
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
5、启动mysql服务,重置密码
一、启动mysql
1)启动mysql服务
systemctl start mysqld.service
2)查看mysql服务是否正常启动
systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2020-10-13 10:28:52 CST; 5s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 26382 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 26364 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 26385 (mysqld)
CGroup: /system.slice/mysqld.service
└─26385 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
cdh01 systemd[1]: Starting MySQL Server...
cdh01 systemd[1]: Started MySQL Server.
二、登录mysql,重制密码
1)登录mysql
mysql -u root -p
注:会出现如下情况,为密码输入错误,拒绝访问的错误信息
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
2)安装好mysql之后系统会生成一个随机密码,这个密码既复杂又不方便,我们先不讲怎么找到随机密码,如何用这个随机密码登录,我们采取的策略是直接修改成自定义密码,使用自定义密码登录mysql
1、停止mysql服务
systemctl stop mysqld.service
2、设置mysql无密码登录
编辑/etc/my.cnf文件,添加如下代码
skip-grant-tables
3、重启mysql服务
systemctl start mysqld.server
3)重新登录mysql
此时输入登录命令,会提示输入密码直接回车即可
mysql -u root -p
4)修改root用户的密码
1、首先切换到mysql库
use mysql;
2、我们输入命令修改密码,下面代码中password( )括号中里面的内容为自定义的新密码
输入命令这里列出3个,不同的版本修改密码语句不同。我使用的是第三条命令,然后密码才修改成功。大家可以用这三条语句试一试,这3条语句应该可以解决大多数的修改密码无效问题。
UPDATE user SET password=PASSWORD(‘root’)WHERE user=’root’;
update user set password=password("root") where user="root";
update mysql.user set authentication_string=password('root') where user='root' ;
3、修改后刷新一下mysql权限相关的表
flush privileges;
4、退出mysql客户端
exit;
5)删除之前添加的到/etc/my.cnf中的代码
skip-grant-tables
6)重启mysql服务
systemctl restart mysqld.service
7)再次登录,使用修改后的密码显示登录成功
6、启动3306端口,授权远程可访问mysql数据库
使用远程客户端(navicat等)连接mysql需要确保两点
a、3306端口有没有被防火墙禁用
b、mysql远程访问权限是否已打开
一、首先开启3306端口,因为这个端口默认会被防火墙禁掉,否则授权也没有用
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
二、打开mysql远程访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
若密码简单会报如下错误:
ERROR 1819 (HY000): Your password does not satisfy ...
此时需要调整:
1)、mysql密码强度限制:
set global validate_password_policy=0;
2)、mysql密码长度限制(密码长度设置为4,根据实际情况自己调整长度)
set global validate_password_length=4;
3)、更新授权表,使以上调整生效
flush privileges;