安装后的设置包括创建一个用于导入和导出操作的安全目录、配置服务器启动选项、初始化数据目录、使用systemd启动MySQL、重置MySQL的密码root@localhost
用户帐户,并运行一些测试以确保服务器正在工作。
的MySQL用户文件
特权具有对服务器主机使用的文件进行读写的权限数据加载INFILE
而且选择……到输出文件
语句,LOAD_FILE ()
函数。默认情况下,具有文件
特权可以读取服务器主机上任何世界可读或MySQL服务器可读的文件。(这意味着用户可以读取任何数据库目录中的任何文件,因为服务器可以访问这些文件中的任何一个。)的文件
特权还允许用户在MySQL服务器具有写访问权限的任何目录中创建新文件。这包括服务器数据目录,其中包含实现特权表的文件。
限制的范围文件
权限,创建一个用户具有文件
权限可安全地用于导入和导出操作。在这个部署中,创建的目录是命名的mysql-files
并且位于数据目录下。在后面的步骤中,当配置服务器启动选项时,将使用secure_file_priv
选项设置为mysql-files
目录中。
Shell > CD /usr/local/mysql Shell > mkdir mysql-files Shell > chown mysql:mysql mysql-files Shell > chmod 750 mysql-files
指定MySQL服务器在启动时应该使用的选项,将它们放在MySQL配置文件中。如果不这样做,服务器将从默认设置启动(参见服务器配置默认值).
某些InnoDB
选项只能在初始化数据目录之前配置。这些选项包括innodb_data_home_dir
,innodb_data_file_path
,innodb_log_file_size
,innodb_log_group_home_dir
,innodb_page_size
,innodb_undo_tablespaces
.如果不希望为这些选项使用默认值,请在初始化数据目录之前在MySQL配置文件中设置自己的值。此部署使用defaultInnoDB
配置设置。有关更多信息,请参见InnoDB启动配置.
要创建一个MySQL配置文件,以root用户发出以下命令:
Shell > CD /etc Shell > touch my.cnf Shell > chown root:root my.cnf Shell > chmod 644 my.cnf . chown root:root my.cnf Shell > chmod
请注意如果存在
my.cnf
配置文件在属于另一个MySQL实例的相同位置,使用不同的名称为您的配置文件。在一个
(mysqld)
组条目,设置datadir
,套接字
,港口
,日志错误
实例的选项。如果主机上有其他MySQL安装,请确保这些选项的值对该实例是惟一的。此部署使用默认值。(mysqld) datadir = / usr /地方/ mysql /数据套接字= / tmp / mysql。袜子端口= 3306日志错误= / usr /地方/ mysql /数据/ localhost.localdomain.err
重要的MySQL数据目录的位置对于MySQL安装的安全性至关重要。除了用户数据之外,data目录还包含数据字典和系统表,它们存储有关数据库对象、用户、特权等的敏感信息。根据最小权限原则,系统用户对数据目录的访问应尽可能地限制。还应该考虑数据目录所在的文件系统的大小。确保文件系统能够容纳预期的数据大小。本指南中描述的部署将数据目录放在默认位置(
/usr/local/mysql/data
),对该目录的访问仅限于mysql
操作系统用户帐号。设置
用户
选项以确保服务器以非特权启动mysql
用户帐户。出于安全原因,重要的是要避免将服务器作为操作系统运行根
用户。用户= mysql
如果您希望允许导入和导出操作,请设置
secure_file_priv
系统变量的路径mysql-files
您以前创建的目录。此选项限制文件导入和导出操作,例如由加载数据
而且选择……到输出文件
语句和LOAD_FILE ()
函数设置为指定的目录。如果不打算允许导入或导出操作,请设置secure_file_priv
来零
,它完全禁止导入和导出操作。零
是默认设置。secure_file_priv = / usr /地方/ mysql / mysql-files
以避免潜在的安全问题
当地的
版本的加载数据
,确保local_infile
默认启用。local_infile =了
有关更多信息,请参见本地加载数据的安全考虑.
在完成上述步骤后,配置文件应该包含这些设置,假设您没有添加其他设置:
(mysqld) datadir = / usr /地方/ mysql /数据套接字= / tmp / mysql。袜子端口= 3306日志错误= / usr /地方/ mysql /数据/ localhost.localdomain.err用户= mysqlsecure_file_priv = / usr /地方/ mysql / mysql-fileslocal_infile =了
安装MySQL后,必须初始化data目录,其中包括mysql
系统数据库及其表,包括授权表、服务器端帮助表和时区表。初始化还会创建root@localhost
超级用户帐户和InnoDB
需要管理的系统表空间和相关数据结构InnoDB
表。
初始化数据目录。
将位置更改为MySQL安装的顶级目录,创建data目录,并将所有权授予
mysql
用户。Shell > CD /usr/local/mysql Shell > mkdir data Shell > chmod 750 data Shell > chown mysql:mysql数据
请注意数据目录的所有权分配给
mysql
用户,但MySQL安装的大部分仍然属于根
.其他例外是错误日志文件mysql-files
目录、pid文件和套接字文件mysql
用户必须具有写权限。的文件和资源mysql
用户需要读取访问权限以包含配置文件(例如,/etc/my.cnf
)和MySQL二进制文件(/usr/local/mysql/bin
).初始化数据目录。
Shell > CD /usr/local/mysql Shell > bin/mysqld——defaults-file=/etc/my.cnf——初始化
初始化输出被打印到错误日志(
/usr/local/mysql/data/localhost.localdomain.err
),与下面的输出类似。的随机初始密码root@localhost
帐户。重新设置时需要输入初始密码root@localhost
密码。[警告]带有隐式默认值的TIMESTAMP不支持。请使用——explicit_defaults_for_timestamp服务器选项(更多细节请参阅文档)。10bet官方网站[Warning] InnoDB: New log files created, LSN=45790 [Warning] InnoDB:正在创建外键约束系统表。[警告]没有找到现有的UUID,所以我们假设这是该服务器第一次启动。生成新的UUID: ee40ce3b-367c-11e7-adf9-080027b8b5f8。[警告]Gtid表尚未准备好使用。表的mysql。Gtid_executed '无法打开。[警告]CA证书CA .pem是自签名的。[注]“root@localhost: jh;kgEza*9&t”生成临时密码
中创建的时区表mysql
数据库,但不填充它们。要做到这一点,请参考MySQL服务器时区支持.
有关数据目录初始化的详细信息,请参见初始化数据目录.
介绍如何使用systemd启动服务器,以及如何使MySQL服务器在启动时自动重启。
方法提供手动服务器管理systemctl命令:
systemctl{开始| | |重新启动停止状态}mysqld
将MySQL安装配置为systemd。
添加一个systemd服务单元配置文件,其中包含关于MySQL服务的详细信息。文件命名为
mysqld.service
被放置在/usr/lib/systemd/system
.Shell > CD /usr/lib/systemd/system服务shell> chmod 644 mysqld.service
将此配置信息添加到
mysqld.service
文件:[单位]Description=MySQL Server Doc10bet官方网站umentation=man:mysqld(7) Documentation=http:10bet靠谱//www.delbede.com/doc/refman/en/using-systemd.html After=network。目标= syslog之后。目标(安装)WantedBy =多用户。target [Service] User=mysql Group=mysql Type=fork PIDFile=/usr/local/mysql/data/mysqld. sh禁用mysqld的systemd服务启动和停止超时逻辑。TimeoutSec=0 #启动主服务ExecStart=/usr/local/mysql/bin/mysqld——defaults-file=/etc/my.cnf——daemonize——pid-file=/usr/local/mysql/data/mysqld. confpid $MYSQLD_OPTS #用来切换malloc实现EnvironmentFile=-/etc/sysconfig/mysql #设置open_files_limit LimitNOFILE = 5000 Restart=on-failure RestartPreventExitStatus=1 PrivateTmp=false
为systemd添加一个配置文件
临时文件
特性。文件命名为mysql.conf
被放置在/usr/lib/tmpfiles.d
.壳> cd /usr/lib/tmpfiles.D shell> touch mysql.conf shell> chmod 644 mysql.conf
将此配置信息添加到
mysql.conf
文件:D /usr/local/mysql/data 0750 mysql mysql -
启用
mysqld
服务在重新启动时自动启动。Shell > systemctl enable mysqld。service从/etc/systemd/system/multi-user.target.wants/mysqld创建符号链接。/usr/lib/systemd/system/mysqld.service服务。
为确保systemd配置工作正常,请启动
mysqld
服务手动使用systemctl.Shell > systemctl start mysqld
的状态
mysqld
服务。输出应该类似于下面的内容,其中显示mysqld服务启动成功。Shell > systemctl status mysqldMySQL Server Loaded (/usr/lib/systemd/system/mysqld.service;启用;Active:活动(运行)自星期五2017-09-08 09:44:38 ADT;Docs: man:mysqld(7) //www.delbede.com/do10bet靠谱c/refman/en/using-systemd.html Main PID: 2345 (mysqld) CGroup: /system.slice/mysqld。Service├─2345 /usr/local/mysql/bin/mysqld——defaults-file=/etc/my.cnf——d…9月08日09:44:23 localhost。localdomain systemd[1]:启动MySQL Server…9月08日09:44:38 localhost。localdomain systemd[1]:启动MySQL服务器。
要验证systemd在系统重新启动时自动启动MySQL,请重新启动系统并检查
mysqld
服务一次。Shell > systemctl status mysqld
Systemd有自己的日志文件,可以使用journalctl.要查看mysql相关的日志消息,请使用journalctl - u mysqld
.有些消息,例如MySQL启动消息,可能会打印到systemd日志中。
有关systemd的更多信息,请参见使用systemd管理MySQL服务器.
这个过程假设MySQL服务器正在运行。您可以通过发出以下命令检查服务器状态:
Shell > systemctl status mysqld
初始化数据目录时,MySQL会生成一个随机初始密码根
账户(root@localhost
),并标明过期。请执行以下步骤设置新密码:
使用
mysql
客户端,以root@localhost
使用初始化顺序时服务器生成的随机密码:shell> cd /usr/local/mysql shell> bin/mysql -u root -p Enter password:(此处输入随机root密码)
连接后,分配一个新的
root@localhost
密码。使用符合密码验证插件(在后面的步骤中启用)的默认密码策略的强密码。(见第六章,安装MySQL密码验证插件.)密码长度至少为8位字符,至少包含1个数字字符、1个小写字母字符、1个大写字母字符和1个特殊字符(非字母数字)。此外,密码不应与当前会话的有效用户帐户的用户名部分相匹配,无论是正向还是反向。
mysql>修改用户名root @ localhost密码”;
现在MySQL已经安装和初始化,MySQL根
重置用户密码后,执行两个简单测试以验证服务器是否正常工作。
使用mysqlshow验证您可以从服务器检索信息。
shell> cd /usr/local/mysql shell> bin/mysqlshow -u root -p Enter password:(此处输入root密码)+--------------------+ | 数据库 | +--------------------+ | mysql information_schema | | | | performance_schema | |系统 | +--------------------+
使用mysqladmin,查看MySQL服务器版本信息。
shell> cd /usr/local/mysql shell> bin/mysqladmin -u root -p version Enter password:(此处输入root密码)
输出应该类似于下图所示:
/mysqladmin Ver 8.42 Distrib 5.7.19, for linux-glibc2.12 on x86_64Oracle是Oracle公司和/或其关联公司的注册商标。其他名称可能是其各自所有者的商标。服务器版本5.7.19-enterprise-commercial-advanced协议版本10通过UNIX socket连接本地主机UNIX socket /tmp/mysql。sock运行时间:3分钟21秒线程:2问题:6慢查询:0打开:105刷新表:1打开表:98查询每秒平均:0.029
有关其他测试,请参见测试服务器.