linux版本:centos7.6
mysq版本:8.0.15
——————————————————————–
卸载mysql的命令:
yum remove mysql-xxx-xxx-
删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;
find / -name mysql
可能的显示结果如下:
-
/etc/logrotate.d/mysql
-
/etc/selinux/targeted/active/modules/100/mysql
-
/etc/selinux/targeted/tmp/modules/100/mysql
-
/var/lib/mysql
-
/var/lib/mysql/mysql
-
/usr/bin/mysql
-
/usr/lib64/mysql
-
/usr/local/mysql
根据需求使用以下命令 依次 对配置文件进行删除
rm -rf /var/lib/mysql 或 rpm -e --nodeps xxx
删除MariaDB的文件
-- 使用rpm 命令查找出要删除的mariadb文件 rpm -qa | grep mariadb -- 可能查出的文件 mariadb-libs-5.5.56-2.el7.x86_64 -- 删除上面的程序 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
一、安装
1、centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装。
在MySQL官网中下载YUM源rpm安装包:MySQL :: Download MySQL Yum Repository
也可以选择执行命令下载YUM源rpm安装包:
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2、安装 yum repo文件;
rpm -ivh mysql80-community-release-el7-11.noarch.rpm
或
yum localinstall mysql80-community-release-el7-1.noarch.rpm
会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
3、 更新yum源:
yum clean all
yum makecache
4、查看mysql yum仓库中mysql版本,使用如下命令:
yum repolist all | grep mysql
可以看到 MySQL 5.5 5.6 5.7为禁用状态 而MySQL 8.0为启用状态;如果您不想安装mysql8.0的版本我们可以按下面操作去做,要是安装的mysql8.0版本这步可以略过。使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态:
yum-config-manager –disable mysql80-community
yum-config-manager –enable mysql57-community
或者可以编辑 mysql repo文件,将相应版本下的enabled改成 1 即可:
cat /etc/yum.repos.d/mysql-community.repo
5、 安装mysql 命令:
yum install mysql-community-server
开启mysql服务:
systemctl start mysqld.service
设置开机自启:
systemctl enable mysqld.service
— 如果开机没有启动的话就使用下面这个命令吧,反正我是没使用
systemctl daemon-reload
数据库的服务操作:
#启动mysql
systemctl start mysqld.service
#结束
systemctl stop mysqld.service
#重启
systemctl restart mysqld.service
#开机自启
systemctl enable mysqld.service
6、 获取初始密码登录mysql
mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
cat /var/log/mysqld.log | grep password
使用初始密码登录mysql
mysql -uroot -p
首次登陆更改密码:
ALTER USER “root”@”localhost” IDENTIFIED BY “你的新密码“;
二、密码策略
1、查看 mysql 初始的密码策略,
输入语句 “ SHOW VARIABLES LIKE ‘validate_password%’; ” 进行查看,(如是第一次陆,则需要更改密码后才能查看)
2、 设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,
mysql8.0版本必须符合长度(默认是8位),且必须含有数字,小写或大写字母,特殊字符。因为实在我本地自己的库,所以我修改了密码最小长度和密码的策略
mysql 8.0以上 新版本账号密码策略修改和密码修改
老版本的密码策略变量:
validate_password_policy 这个参数用于控制validate_password的验证策略 0–>low 1–>MEDIUM 2–>strong。
validate_password_length密码长度的最小值(这个值最小要是4)。
validate_password_number_count 密码中数字的最小个数。
validate_password_mixed_case_count大小写的最小个数。
validate_password_special_char_count 特殊字符的最小个数。
validate_password_dictionary_file 字典文件
8.0后要注意密码策略变量变化
validate_password.check_user_name ON
validate_password.dictionary_file
validate_password.length
validate_password.mixed_case_count
validate_password.number_count
validate_password.policy
validate_password.special_char_count
如:validate_password_policy 变为validate_password.policy.
所以
set global validate_password_policy=0;变为 set global validate_password.policy=0 ;
密码最小长度(4):
set global validate_password_length=6; 变为 set global validate_password.length=4
3、修改root的密码:
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘root’;
三、远程设置:
1、远程设置
mysql> use mysql;
mysql> update user set host=’%’ where user=’root’;
#授权用户名的权限,赋予任何主机访问数据的权限
#本人没有执行这步
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
2、开放3306端口:
— 查看已经开放的端口
firewall-cmd –list-ports
— 开启端口
firewall-cmd –zone=public –add-port=3306/tcp –permanent
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重启防火墙:
#重启firewall
firewall-cmd –reload
#停止firewall
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.service
3、 端口开放后就可以进行数据库连接操作了,在使用Navicat连接 Mysql 8.0.15可能会出现问题 Client does not support authentication protocol 错误解决方法:
#修改加密规则
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;
#更新一下用户的密码
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;
#刷新权限
FLUSH PRIVILEGES;
四、mysql的其他操作:
查看数据库编码:
show variables like 'character%';
或
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%'
查看单个数据库的编码设置
#方法一:
select * from information_schema.schemata where schema_name="test_character";
#方法二:
show crate database test_character;
查看单个表的编码设置
show crate table test_character.test;
如果编码不统一,很容易出现中文乱码,下面介绍在多个层面上修改编码设置
创建数据库时直接指定编码
create database <数据库名> character set utf8;
修改数据库的编码
alter database <数据库名> character set utf8;
创建表时指定编码
create table <表名> (id int(10),name varchar(20))default charset=utf8;
修改表的编码
alter table <表名> character set utf8;
数据库中下面的几个变量必须是uft8或是utf8mb4:
character_set_client (客户端来源数据使用的字符集) character_set_connection (连接层字符集) character_set_database (当前选中数据库的默认字符集) character_set_results (查询结果字符集) character_set_server (默认的内部操作字符集)
数据库连接参数中:
characterEncoding=utf8会被自动识别为utf8mb4,也可以不加这个参数,会自动检测。
而autoReconnect=true是必须加上的。
部分参数配置查询命令:
#查询mysql最大连接数设置 show global variables like 'max_conn%'; SELECT @@MAX_CONNECTIONS AS 'Max Connections'; # 查看最大链接数 show global status like 'Max_used_connections'; # 查看慢查询日志是否开启以及日志位置 show variables like 'slow_query%'; # 查看慢查询日志超时记录时间 show variables like 'long_query_time'; # 查看链接创建以及现在正在链接数 show status like 'Threads%'; # 查看数据库当前链接 show processlist; # 查看数据库配置 show variables like '%quer%'; 查看mysql版本:
select version();
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71250.html