linux-mysql的安装与使用

linux-mysql的安装与使用(MySQL Community Server 8.0.15)

记录一次使用MySQL Yum repository安装mysql server的过程,使用yum 方式进行安装非常的简单和方便

0、由于MariaDB和MySQL的渊源颇深,若系统中原来有MariaDB,要提前删除掉,避免安装失败或产生其他不兼容性问题
搜索mariadb
#rpm -qa | grep maria*
发现mariadb删除掉
#rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
在这里插入图片描述

1、在官网下载yum repository安装文件 https://dev.mysql.com/downloads/repo/yum/
选择适合系统的版本,本次安装使用的是centos7
linux-mysql的安装与使用_第1张图片

2、下载文件并上传到服务器(或者获取文件连接,在服务器直接用wget下载)
这里我是用wget下载文件到/user/local/mysql目录下
linux-mysql的安装与使用_第2张图片

3、安装mysql的仓库文件(下面安装过程可以参照官网https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/)
#rpm -Uvh mysql80-community-release-el7-2.noarch.rpm
在这里插入图片描述

4、查看yum repository mysql源信息
#yum repolist all | grep mysql
可以看到mysql源里面包含55、56、57、80版本的信息,默认80是enabled,其他版本是disabled。
也就是说默认安装会安装当前最新版本的mysql server
linux-mysql的安装与使用_第3张图片

5、可以使用yum-config-manage disable某个版本和enable某个版本(如果找不到命令,先执行该命令# yum -y install yum-utils)
例如想安装mysql5.7,禁掉80,打开57
#yum-config-manager --disable mysql80-community
#yum-config-manager --enable mysql57-community
或者直接更改/etc/yum.repos.d/mysql-community.repo文件

6、安装mysql 服务
#yum install mysql-community-server
linux-mysql的安装与使用_第4张图片

7、安装完成信息片段
linux-mysql的安装与使用_第5张图片

8、修改配置文件(如果有需要,不然可以保持默认)
#vim /etc/my.cnf
可以修改端口号、表名大小写敏感、sql模式等。
注意:lower_case_table_names只支持在初始化数据库之前修改,如果数据库已经初始化完毕,再修改不起作用,并且数据库服务也无法启动
解决办法:停掉运行的MySQL进程删除数据目录下的文件,启动服务并重新初始化(有数据要记得先备份,备份,备份)
#systemctl stop mysqld
#rm -rf /var/lib/mysql/*

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/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 the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_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
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin

# 设置mysql认证插件,默认caching_sha2_password,现在很多客户端不支持,导致无法连接
default-authentication-plugin=mysql_native_password

# 设置mysql端口号,默认是3306,这里修改成了3386
port = 3386

#lower_case_table_names=0  表名存储为给定的大小和比较是区分大小写的 
#lower_case_table_names=1  表名存储在磁盘是小写的,但是比较的时候是不区分大小写
#lower_case_table_names=2  表名存储为给定的大小写但是比较的时候是小写的
## 默认值是0,为了与开发环境兼容,这里修改成了1
lower_case_table_names=1

#默认有更多的限制,为了与开发环境兼容,做了调整
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

9、启动服务并查看状态
第一次启动服务,数据库会初始化数据,生成临时密码
#systemctl start mysqld
linux-mysql的安装与使用_第6张图片

10、临时密码
在mysql的日志文件中找到初始化时生成的临时密码
直接打开日志文件,找到temporary password
#vim /var/log/mysqld.log
linux-mysql的安装与使用_第7张图片
或者进行内容搜索更方便
cat /var/log/mysqld.log | grep password
在这里插入图片描述

11 、使用临时密码登陆mysql
#mysql -uroot -p
linux-mysql的安装与使用_第8张图片

12、修改密码,并让数据库可以远程访问
临时密码登陆后,权限受限,必须修改密码才能做进一步的操作
因为当前密码策略的限制,还不能设置简单的密码
修改密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘Test@1234’;
注意: 若在配置文件中没有指定mysql认证插件为mysql_native_password,可以在修改密码的时候显示指定认证插件,即
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘Test@1234’;
刷新权限
FLUSH PRIVILEGES;
linux-mysql的安装与使用_第9张图片

查看数据库
show databases;
选择数据库
use mysql;
查看当前数据库表
show tables;
查看user表host、user字段
select host,user from user;
修改root用户的host
update user set host=’%’ where user=‘root’;
再次查看user表host、user字段
select host,user from user;
linux-mysql的安装与使用_第10张图片
刷新用户权限
FLUSH PRIVILEGES;

13、尝试远程连接
linux-mysql的安装与使用_第11张图片

14、查看密码策略、修改密码策略
有时候作为测试数据库,只需要一个简单的数据库密码,这个时候我们需要降低密码策略等级再修改密码
查看默认的密码策略和密码长度要求
SHOW VARIABLES LIKE ‘validate_password%’;
linux-mysql的安装与使用_第12张图片
validate_password_check_user_name :用户名检测,默认开启
validate_password_dictionary_file :字典文件,就是要在字典规则里才能满足密码的条件。
validate_password_length : 密码的长度至少为8位
validate_password_mixed_case_count :密码中至少有一个大小写字母
validate_password_number_count :密码中至少一个数字
validate_password_special_char_count : 密码中至少一个特殊字符
validate_password_policy : 密码的安全策略

validate_password_policy 参数可选值:MEDIUM或者0 、LOW或者1、STRONG或者2
LOW :策略仅测试密码长度。密码长度必须至少为8个字符。
MEDIUM :策略添加了密码必须至少包含1个数字字符,1个小写字符,1个大写字符和1个特殊(非字母数字)字符的条件。
STRONG :策略添加了长度为4或更长的密码子字符串不能匹配字典文件中的字词(如果已经指定)的条件。
所以默认情况下最终的密码设置策略就是:不得低于8位,而且必须至少有一个大写和一个小写字母、至少一个数字和至少的一个特殊字符组成;
最基本的规则:大写+小写+特殊字符+数字组成的至少8位的密码

所以要想能够设置简单密码可以把密码策略改成0(LOW),密码长度改成4(密码长度最小长度为4,不能再小了)
SET GLOBAL validate_password.policy=0;
SET GLOBAL validate_password.length=4;

经过一番设置,就可以设置四位的简单密码了
linux-mysql的安装与使用_第13张图片

---------------------------------------------------------扩展信息---------------------------------------------------------

15 、查看字符集
show variables like ‘%char%’;
linux-mysql的安装与使用_第14张图片

16、数据库表大小写敏感信息lower_case_table_names
lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names=1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的

show variables like ‘%lower%’;
linux-mysql的安装与使用_第15张图片

小尾巴~~
只要有积累,就会有进步

你可能感兴趣的:(linux,linux,centos,mysql,阿里云,Yum,repository)