拓展一:Linux下设置远程登录
1. 确认网络
在远程机器上使用ping ip地址
保证网络畅通
在远程机器上使用telnet命令
保证端口号开放
访问
2. 关闭防火墙或开放端口
方式一:关闭防火墙
- CentOS6 :
1 | service iptables stop |
- CentOS7:
1 | #开启防火墙 |
方式二:开放端口
- 查看开放的端口号
1 | firewall-cmd --list-all |
- 设置开放的端口号
1 | firewall-cmd --add-service=http --permanent |
- 重启防火墙
1 | firewall-cmd --reload |
3. Linux下修改配置
修改允许远程登陆的IP地址(根据需要的用户更改)
1 | use mysql; |
%
是个 通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%
,表示所有IP都有连接权限。注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。
配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了。
解决方法一:升级远程连接工具版本
解决方法二:
1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
拓展二:Linux下字符集的相关操作
mysql 5.7 默认服务器字符集:latin1
mysql 8.0 默认服务器字符集:utf8mb4
1. 查看各级别的字符集
1 | show variables like 'character%'; |
- character_set_server:服务器级别的字符集
- character_set_database:当前数据库的字符集
- character_set_client:服务器解码请求时使用的字符集
- character_set_connection:服务器处理请求时会把请求字符串从character_set_client转为character_set_connection
- character_set_results:服务器向客户端返回数据时使用的字符集
小结
- 如果
创建数据库时
没有显式的指定字符集和比较规则,则该数据库默认用服务器的
字符集和比较规则 - 如果
创建表时
没有显式的指定字符集和比较规则,则该表默认用数据库的
字符集和比较规则 - 如果
创建或修改列
时没有显式的指定字符集和比较规则,则该列默认用表的
字符集和比较规则
2. 修改字符集
修改mysql配置文件
1 | vim /etc/my.cnf |
在MySQL5.7或之前的版本中,在文件最后加上中文字符集配置:
1 | character_set_server=utf8 |
重新启动MySQL服务
1 | systemctl restart mysqld |
拓展三:Linux下mysql 8 密码安全策略等级修改
1. 查看密码安全策略
1 | show variables like 'validate_password%'; |
2. 修改安全策略等级
1 | #强度低 |
还可修改密码限制字符长度
1 | set global validate_password_length=1 |
拓展四: 文件目录
查看数据库文件的存放路径:
1 | show variables like 'datadir'; # /var/lib/mysql/ |
配置文件存放目录:
- 命令及配置文件目录:/usr/share/mysql-8.0
- mysql配置文件目录:/etc/mysql/my.cnf (Linux下为.cnf,Windows下为.ini)
系统表空间(system tablespace):
默认情况下,InnoDB会在数据目录下创建一个名为ibdata1
、大小为12M
的自拓展
文件,这个文件就是对应的系统表空间
在文件系统上的表示。
独立表空间(file-per-table tablespace):
在MySQL5.6.6以及之后的版本中,InnoDB并不会默认的把各个表的数据存储到系统表空间中,而是为每一个表建立一个独立表空间
,也就是说我们创建了多少个表,就有多少个独立表空间。使用独立表空间来存储表数据的话,会在该表所属数据库对应的子目录下创建一个表示该独立表空间的文件,文件名和表名相同
。
- 本文作者: zzr
- 本文链接: http://zzruei.github.io/2023/0164155121.html
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!