MySQL5.7以及之后版本的编译后初始化问题以及安全初始化问题

     MySQL5.7以及之后版本的编译后初始化问题以及安全初始化问题

不得不说,大部分时间MySQL还是比较人性的,在编译或者安装后就开始不人性了,因为出错后它会甩给你N多你不了解的错误代码,错误代码表示什么意思你还搞不清楚。这就让人很烦躁了。

不管是yum安装还是编译安装,二进制安装,也就是不管什么方式,安装完毕后都需要执行两个脚本,一个是初始化数据库脚本,一个是整体数据库安全的选项初始化。mysql_install_db,mysql_secure_installation,就这么两个脚本。

myslq_install_db这个脚本的功能为生成原始的mysql,information_schema,performance_schema,还一个是test库,mysql库储存了数据库的用户信息等等,performance_schema库储存了数据库运行时的相关配置等等。(大体就这些,剩下记不得了)。因此,一般编译安装完毕后或者二进制安装后,第一个步骤就是执行这个脚本。

mysql_secure_installation这个脚本的功能是mysql快速安全设置脚本,其中会重新生成所手动指定的root密码,并删除无用的test数据库,以及一些权限的设定。对于数据库来说,执行这个步骤很重要,尤其是生产环境中,对数据库的安全是有实际提升作用的,当然,虽然很重要但不是必须选项,可以选择不执行该脚本,但修改初始密码,删除多余库,设定远程连接权限等毕竟还是比较麻烦的一件事情吧。

如果,在my.cnf 这个文件中定义了socker文件的存放位置,不使用默认的位置,可以吗?当然可以,但前提是需要给与你所自定义的目录mysql用户权限,并在mysql.cnf的每个标签下都定义这个socker文件位置。但,这时候出现问题了,执行第二个脚本,也就是安全脚本会无法执行,报错,ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysqld.sock' (2)   ==========(我定义的存放socker文件目录是 /var/lib/mysql/mysqld.sock).这怎么办??

找到mysql_secure_installation脚本,修改它就行了 ,在接近144行左右,添加"socket=/var/lib/mysql/mysql.sock",在执行脚本即可。通常,该脚本在安装目录下的bin目录下。我的安装目录为 /usr/local/mysql   这个脚本在 /usr/local/mysql/bin 目录下。

MySQL5.7以及之后版本的编译后初始化问题以及安全初始化问题

 my.cnf文件如下:

MySQL5.7以及之后版本的编译后初始化问题以及安全初始化问题

注意一点,必须给自定义目录加mysql用户权限。如我这,路径是 /usr/local/mysql/

加权限为: chown -Rf  mysql:mysql  /usr/local/mysql/