Linux mysql 配置

一 、数据库处室化密码

  1. 刚刚装好的数据库需要重置密码:

    alter user user() identified by '12345678';
    
  2. 如果是测试环境, 或者自己玩的环境, 设置密码过于简单, 可以通过一下命令修改关于密码的校验:

    set global validate_password.policy # 密码验证策略(三个值: 0=>low, 1=>medium, 2=> strong )
    set global validate_password.length # 密码长度的最小值
    set global validate_password.number_count # 密码中数据的最小个数
    set global validate_password.mixed_case_count # 大小写的最小个数
    set global validate_password.special_chat_count # 特俗字符的最小个数
    set global validate_password.dictionary_file # 字典文件
    

注意:
1. 高版本是 validate_password.policy, 低版本是 validate_password_policy, 其他设置属性一样
2. 高版本降低密码验证策略 需要先重置一个符合要求的密码(大小写字母数字符号),之后降低密码验证策略, 在修改密码(三步), 低版本可以直接修改密码验证策略, 之后在重置密码(两步)

二、四个初始库的各自作用:

  1. information_schema: 主要保存 Mysql 数据库服务器的系统信息, 比如数据库的名称, 数据表的名称, 字段名称, 读取权限等
  2. performance_schema: 可以用来监控 MySQL的各类性能指标
  3. sys: 主要作用是以一种更容易被理解的方式展示MySQL 数据库服务器的各类性能指标, 帮助系统管理员和开发人员监控MySQL的技术性能.
  4. mysql: 数据库保存了MySQL数据库服务器运行时需要的系统信息, 比如数据文件夹, 当前使用的字符集, 约束检查信息等等

补充内容 : 优化(根据问题优化), 怎么发现问题:

  • 根据体验, 发现问题(查询数据很忙)
  • performance_schema: 监控数据库性能标准指标发现问题(指标不唯一), 是具体库,小的指标
  • sys: 数据库服务器的指标

注意:

  • 系统默认的4个数据库不建议使用和修改, 后续使用和测试建议自己建立数据库,系统默认的4个数据库更多的是监控数据库的各种指标, 如果修改使用, 不利于后面的优化和显示所有数据库

三、置数据库远程链接

  1. 如果远程链接报错(错误码2003), 那么需要设置数据库默认端口号 3306 可以通过通过防火

    /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT # linux 命令(如果是云端服务器,需要去安全组里面配置端口号)
    
  2. 如果远程链接报错(错误码1130),那么是因为当前登录用户的host限制, 需要进入数据库, 并且开放host 给指定的用户(IP)或者所有用户(%)

    mysql -u root -p # 进入数据库
    show database; # 显示所有数据库
    use mysql; # user表在mysql库中
    update user set host = '%' where host='localhost' and user='root'; # 更新root 用户对应host, 可以让所有用户ip地址访问
    
  3. 重启 数据库服务

    service mysqld restart
    
  4. 如果远程链接继续报错(错误码2058), 那就是plugin 的密码策略没有通过,需要更改user表plugin字段对应的密码策略:

    create user 'test01'@'%' identified by '12345678'; # 创建一个用户, 可以不新建, 直接在root用户上更改
    flush privileges; # 刷新
    grant all privileges on *.* to test01@'%'; # 用户授权, 更改user 库中 plugin 对应的密码策略
    service mysqld restart; # 退出数据库, 重启服务
    set global validate_password.policy=0;  # 更改密码检验等级
    alter user 'test01'@'%' identified with mysql_native_password BY '12345678'; # 更改 plugin 对应密码策略
    flush privileges; # 刷新, 之后退出重启数据库
    

注意:

  • MySQL8 种支持2种密码安全策略, 新建用户密码默认使用caching_sha2_password,
    caching_sha2_password
    mysql_native_password
    数据库可以开始远程链接

四 、3306和33060的区别

  1. 3306 是mysql 协议的默认端口号, mysql 的客户端或者中间件通过3306的端口号, 数据备份还原
  2. 33060 是 mysqlx 协议的端口号

五 、mysql 配置文件(linux 环境下, 配置文件路径/etc/my.cof)解析

# 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  # 最大的数据占用内存
# 最大的数据占用内存, 用于缓存, 索引 和数据的内存大小, 这个当然是越大越好, 数据读写在内存中非常快, 较少了对磁盘的读写
# 较优设置: 一般设置buffer pool 大小为总内存的 3/4 或者 4/5
#
#
# 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
# 在mysql8 中默认开启二进制日志文件, 可以通过命令: show variables like 'log_bin'; 查看是否开启, 如果相关闭, 则配置 disable_log_bin 即可, 取消disable_log_bin 前面的 井号并重启MySQL服务
# 
# 
# 
# 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 # 优化join 查询
# sort_buffer_size = 2M # 优化排序数据
# read_rnd_buffer_size = 2M # 在 sort_buffer_size 之后使用
# join_buffer_size 优化join 查询, 因为增加的 join buffer 可以容纳更多的外表join字段记录, 这样就可以让内部表批量的匹配更对的外部字段, 相对来减少匹配次数, 提高了join的查询效率, 但是不易过大, 过大无效
# sort_buffer_size 优化排序数据,  sort hi后的数据是以key-value 的形式存在的, 使用这些指针去读取数据, 将是以指针数据物理顺序去读取, sort 后有大量的数据行
# read_rnd_buffer_size 这个参数使用在 sort 之后, 以保证获取以顺序的方式获取查到的数据, 如果 使用到很多的 order by 查询语句, 增涨这个值能过提升性能, 查询字段中包含Blob/Text字段, 这个配置就很重要了, 必须放到 sort_buffer_size 之后, sort_buffer_size开了, read_rnd_buffer_size 就要开
#
# 
# 
# 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
# default-authentication-plugin=mysql_native_password # 密码安全策略插件
# mysql8 之后 默认是caching_sha2_password , 还有 sha256_password 以及mysql_native_password(可远程链接) mysql8之前默认为mysql_native_password
#
#
#
datadir=/var/lib/mysql   # 数据库, 数据文件路径
socket=/var/lib/mysql/mysql.sock # 数据库锁定文件, 只能启动一次
log-error=/var/log/mysqld.log  # 数据库日志文件
pid-file=/var/run/mysqld/mysqld.pid # 数据库进程文件目录

未完待续, 欢迎评论补充

你可能感兴趣的:(MySQL,mysql,linux,数据库)