安装配置
服务无法启动.删除 mariadb,mariadb-server. 删除 /var/lib/mysql 和 /etc/my.cnf 重新安装
开机启动
systemctl enable mariadb
服务启动
systemctl start mariadb
(status restart stop)
初始化:
mysql_secure_installation
之后按照提示操作
开放端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
链接:
mysql -h host -u user -P port -p
创建用户:
insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
授权:
grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";
grant select,update on testDB.* to test@localhost identified by '1234';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'somepass' WITH GRANT OPTION;
刷新系统权限表:
flush privileges;
utf8:
vi /etc/my.cnf
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake
其他:
show databases;
use xxx;
show tables;
安全
将数据库服务器绑定到 Loopback 地址
此配置将限制来自远程机器的访问,它告诉 MySQL 服务器只接受来自本地主机的连接。你可以在主配置文件中进行设置。
vi /etc/my.cnf
#在 [mysqld] 部分中添加下面这一行
bind-address = 127.0.0.1
禁用 MySQL 的 LOCAL INFILE
作为安全性增强的一部分,您需要禁用 local_infile,使用下面的指令以防止在 [mysqld] 部分从 MySQL 中访问底层文件系统。
local-infile=0
修改 MySQL 的默认端口
设置端口变量用于监听 TCP/IP 连接的 MySQL 端口号。默认端口号是 3306,但是您可以在 [mysqld] 中修改它。
Port=5000
启用 MySQL 日志
日志是了解服务运行过程中发生了什么的最好的方法之一,在受到任何攻击的时候都可以很容易的从日志里看到任何入侵相关的行为。可以通过将下边的变量添加到配置文件[mysqld]部分来开启mysql日志功能。
log=/var/log/mysql.log
设置合适的 MySQL 文件的访问权限
确保你已经为所有的 mysql 服务文件和数据路径设置了合适的访问权限。文件 /etc/my.conf 只能由 root 用户修改,这样就可以阻止其他用户修改数据库服务的配置。
chmod 644 /etc/my.cnf
删除 MySQL shell 历史
你在 MySQL shell 中执行的所有的命令都会被 mysql 客户端保存到一个历史文件:~/.mysql_history。这样是很危险的,因为对于你创建过的任何用户账户,所有的在 shell 输入过的用户名和密码都会记录到历史文件里面。
cat /dev/null > ~/.mysql_history
定期修改 MySQL 密码
定期修改密码是一个常见的信息/应用/系统安全建议。多久修改一次密码由你内部的安全策略决定。定期修改密码可以阻止长期跟踪你的“窥探者”,获取你的密码,登录你的 MySQL 服务器。
定期更新 MySQL Server 包
强烈建议定期从官方仓库更新 mysql/mariadb 包来获取最新的安全更新和错误改进。通常情况下操作系统中默认的包是过时的。
yum update
在对 mysql/mariadb server 进行任何修改之后,要重启服务。
使用额外的安全插件和库
MySQL 包含许多安全插件:验证客户端连接到 MySQL 服务器的请求、密码校验和敏感信息的安全存储等,这些都在免费版本中提供。
在这里可查看更多:https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html
字符集修改
查看mysql字符集
show variables like 'character_set_%';
修改某一个数据库的编码
alter database dbname default character set utf8;
修改mysql服务端的编码
#vi /etc/my.cnf
[mysqld]
default-character-set=utf8
[client]
default-character-set=utf8
重启mysql服务
service mysqld restart