官方网址
官方文档
一、MySQL数据库目录说明:
主配置文件:/etc/my.cnf 数据库目录:/var/lib/mysql 服务启动日志目录:/var/log/mysqld.log(其它后面会讲) 默认端口号:3306 进程名:mysqld 传输协议:TCP 进程所有者:mysql 进程所属组:mysql socket地址: 支持远程通信:ip:3306 仅支持本地通信:/var/lib/mysql/mysql.sock
二、MySQL数据库安装说明:
1.查找是否安装 mariadb或者mysql有没有安装,卸载centos7中默认安装的有数据库mariadb(mysql和mariadb有冲突)
#查看是否存在mariadb
[root@centos mysql]# rpm -qa | grep mariadb
#卸载
[root@centos mysql]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
nodeps(表示只卸载mariadb不卸载mariadb相关的依赖)
再次查看是否卸载成功
[root@localhost ~]# rpm -qa | grep mysql
卸载老版本MySQL
find / -name mysql
rm -rf 上边查找到的路径,多个路径用空格隔开
#或者下边一条命令即可
find / -name mysql|xargs rm -rf
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
4、再次查找机器是否安装mysql
rpm -qa|grep -i mysql
或者:
三、Mysql卸载
1、停止MySQL服务
[root@centos ~]# service mysql stop
2、查看安装的MySQL包0p---------
[root@centos ~]# rpm -qa|grep -i mysql
mysql-community-libs-5.6.42-2.el7.x86_64
mysql-community-server-5.6.42-2.el7.x86_64
mysql-community-common-5.6.42-2.el7.x86_64
mysql-community-client-5.6.42-2.el7.x86_64
3、卸载MySQL安装包
rpm -e –nodeps 包名
[root@centos ~]# rpm -ev mysql-community-libs-5.6.42-2.el7.x86_64
[root@centos ~]# rpm -ev mysql-community-server-5.6.42-2.el7.x86_64
[root@centos ~]# rpm -ev mysql-community-common-5.6.42-2.el7.x86_64
[root@centos ~]# rpm -ev mysql-community-client-5.6.42-2.el7.x86_64
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:
[root@centos ~]# rpm -e --noscripts mysql-community-libs-5.6.42-2.el7.x86_64
[root@centos ~]# rpm -e --noscripts mysql-community-server-5.6.42-2.el7.x86_64
[root@centos ~]# rpm -e --noscripts mysql-community-common-5.6.42-2.el7.x86_64
[root@centos ~]# rpm -e --noscripts mysql-community-client-5.6.42-2.el7.x86_64
4、查找残留文件删除
[root@centos ~]# find / -name mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
/usr/share/mysql
[root@centos ~]# rm -rf /var/lib/mysql/mysql /usr/lib64/mysql /usr/share/mysql
5、删除/etc/my.cnf
[root@centos ~]# rm -rf/etc/my.cnf
三、MySQL8安装:
rpm -qa | grep mariadb
rpm -qa | grep mysql
rpm -qa|grep -i mysql
uname -r
yum install -y lrzsz wget
rz -E
yum install -y mysql80-community-release-el8-4.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
sudo yum module disable mysql
sudo yum install mysql-community-server
systemctl start mysqld
systemctl status mysqld
或者:
2.上传mysql
[root@localhost ~]# mkdir -p /usr/local/mysql
[root@localhost mysql]# yum install -y lrzsz wget
3.解压
mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar
[root@localhost ~]# tar -xvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar
4.安装
[root@localhost ~]# yum -y localinstall *.rpm
5.启动设置开机自启并查看状态
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
启动MySQL数据库服务
[root@localhost ~]# systemctl start mysqld //启动服务
[root@localhost ~]# ps -C mysqld //查看服务进程
[root@localhost ~]# systemctl status mysqld //查看服务状态
[root@localhost ~]# ss -anptul | grep mysqld //查看服务状态
[root@localhost ~]# systemctl enable mysqld //设置服务开机自启
修改root口令
默认的数据库管理账号 root 允许从 localhost 访问
首次登录密码在安装时随机生成
存储在错误日志文件里 /var/log/mysql.log
[root@localhost ~]# grep -i password /var/log/mysqld.log
用初始密码登录MySQL服务器
[root@localhost ~]# mysql -uroot –p'初始密码'
修改MySQL初始密码
用 alter user 重设口令
mysql> alter user root@"localhost" identified by "Rr@123456!"; //修改登录密码
quit;
[root@localhost ~]# mysql -uroot -pRr@123456! //使用新密码重新登录
授权外网连接
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Rf@123456!'with grant option;
mysql> flush privileges;
或者:
use mysql;
update user set host = '%' where user ='root';
alter user 'root'@'%' identified by 'Rr123456!' password expire never;
alter user 'root'@'%' identified with mysql_native_password by 'Rr@123456!';
flush privileges;
或者:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> use mysql;
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
4 rows in set (0.01 sec)
mysql> update user set host = '%' where user= 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+------------------+
4 rows in set (0.00 sec)
mysql> flush privileges;
修改密码安全策略密码的长度限制
密码安全策略变量:validate_password_policy
临时修改
mysql> set global validate_password_policy=0; //只验证长度(LOW策略)默认为1
mysql> set global validate_password_length=4; //修改密码长度,默认是 8个字符
永久修改
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
validate_password_policy=0 //密码验证策略
validate_password_length=4 //密码长度
重启mysqld服务
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8