🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## Mysql的安装与配置 #### 安装mysql相关的依赖包 ~~~ yum install -y cmake make gcc gcc-c++ ncurses-devel ~~~ ### 1. 创建msyql用户和组 ~~~ groupadd mysql # 创建一个组 useradd mysql -s /sbin/nologin -g mysql#创建一个用户 ~~~ ### 2. 创建必要目录并授权 ~~~ # /usr/local/mysql mkdir /usr/local/mysql mkdir -p /mysql/mysql_data # 授权 chown -R mysql:mysql /mysql/ ~~~ ### 3. 解压源码包 ~~~ tar -zxvf mysql-5.7.21.tar.gz # 解压 cd mysql-5.7.21 # 切换目录 ~~~ ### 4. 查看安装说明文件 INSTALL ~~~ cat INSTALL ~~~ ![](https://box.kancloud.cn/1c6796bdfe77ffd1bffcaf4d45f67e0e_1151x389.png) 通过文档可以知道,Mysql5.7编译需要使用cmake进行编译,所以首先需要先安装一下cmake ~~~ yum install -y cmake ~~~ ### 5. boost库安装 > 在msyql的安装说明文档中有相关的介绍,Mysql5.7所需要的boost版为:1.59.0, > 官方网站:http://www.boost.org/ > 下载地址:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz > 安装目录:/usr/local/boost。下载后,解压到该目录即可。 > 建议在cmake阶段添加参数-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost即可 如果安装的版本不对的话,会报错。 ### 6. 配置安装选项(预编译) ~~~ # 切换到mysql-5.7.21源码目录下 # cmake cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/mysql_data -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost ## 实际执行时,需要调成一行 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/mysql_data -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost ~~~ 参数说明 -DCMAKE_INSTALL_PREFIX:安装路径 -DMYSQL_DATADIR:数据存放目录 -DWITH_BOOST:boost源码路径 -DSYSCONFDIR:my.cnf配置文件目录 -DEFAULT_CHARSET:数据库默认字符编码 -DDEFAULT_COLLATION:默认排序规则 -DENABLED_LOCAL_INFILE:允许从本文件导入数据 -DEXTRA_CHARSETS:安装所有字符集 ### 7. 编译安装 ~~~ make && make install ~~~ 到这里,mysql的安装就完成了 mysql的配置 #### 1. mysql配置 由于安装的是msyql5.7.21,所以源码包中并没有带默认配置文件。在这里暂时可以不做配置,直接往后面操作。如果安装的是其它的版本,会带有配置文件,复制一个,做出相应的调整即可。 在这里,就不使用了配置文件了,首先检查一下/etc下是否有my.cnf, 如果有,直接删除或者作备份后删除。 当然,在这里也可以手动创建一个配置文件,vim /etc/my.cnf,其内容如下,配置内容可以根据实际情况自行调整 ~~~ vim /etc/my.cnf [client] port = 3306 socket = /tmp/mysql.sock [mysqld] character_set_server=utf8 init_connect='SET NAMES utf8' basedir=/usr/local/mysql datadir=/mysql/mysql_data socket=/tmp/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid #不区分大小写 lower_case_table_names = 1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION max_connections=5000 default-time_zone = '+8:00' ~~~ #### 2. 初始化数据库 ~~~ # 初始化MySQL,切记--defaults-file=/etc/my.cnf要放在参数的第一位,初始化信息可以在MySQL的errorlog中查看,并且在errorlog会生成一个root的随机密码,该随机密码仅仅为root@localhost用户所有。 # 初始化数据库 mysqld --initialize --explicit_defaults_for_timestamp ~~~ 在初始化数据库时,可能会报如下错误: ![](https://box.kancloud.cn/a0f6ab554743557fcb91f73578ac1caa_1023x114.png) 这是因为设置安装选项时,编码设置有问题,在这里重新设置一下即可。 ~~~ ./mysqld --initialize --explicit_defaults_for_timestamp --character-set-server=utf8 ~~~ 初始化成功后,会给出如下提示:并给出了随机生成的密码,这个不需要理会 ![](https://box.kancloud.cn/e892391a3db6999f0e8ad2f5f865ead7_967x399.png) 初始化数据库时,如果出现如下错误: ![](https://box.kancloud.cn/9b68aaaf641b6976799dbb0886a05051_1010x189.png) > 出现这个问题 ,是因为数据库的数据存放目录,里面不为空,这里进行数据库数据文件存放目当,将其中的内容清空即可。 ### 3. 安装ssl,可指定文件生成路径,默认为DATA里面 ~~~ # 执行 `安装目录/bin/mysql_ssl_rsa_setup` /usr/local/mysql/bin/mysql_ssl_rsa_setup ~~~ ### 4. 启动mysql ~~~ /usr/local/mysql/support-files/mysql.server start ~~~ ![](https://box.kancloud.cn/b250491a682b15b6d3ef1118d570794c_864x87.png) ### 5. 登录并设置新密码 ~~~ cd /usr/local/mysql/bin ./mysql -uroot -p #按提示输入随机生成的密码,也可以按照之前的方式重置一下密码,建议大家使用之前的方法重置密码。 ~~~ #### 重置密码 1. 停止mysql服务 ~~~ killall mysqld ~~~ 2. 绕过权限表登录mysql ~~~ /usr/local/mysql/bin/mysqld_safe --skip-grant-tables ~~~ 3. 更新root密码 ~~~ #选择数据库 mysql>use msyql #更新root密码 mysql>UPDATE user SET authentication_string=PASSWORD("new password") WHERE user='username'; # 刷新权限表 mysql>flush privileges; ~~~ 4. 重启msyql,并登录msyql ~~~ #停止mysql killall mysqld # 启动mysql /usr/local/mysql/support-files/mysql.server start # 使用新密码登录mysql /usr/local/mysql/bin/mysql -uroot -p # 按提示输入新密码即可 ~~~ 登录之后,可能会提示如下错误: ![](https://box.kancloud.cn/7c88f77c3b89e986625656d9103119ae_980x74.png) 解决办法,执行如下命令: ~~~ quit # 退出mysql killall mysqld /usr/local/mysql/bin/mysqld_safe --skip-grant-tables mysql>flush privileges; mysql>set password for 'root'@'localhost' =password('111111'); mysql>flush privileges; ~~~ ### 6. 设置远程登录 可按照之前的方式进行设置,在这里,咱们直接新添加一个远程用户yfketang ~~~ # 添加远程用户 mysql>grant all privileges on *.* to yfketang@'%'identified by '123456'; #刷新权限 mysql>flush privileges; ~~~ 到这里就可以使用yfketang用户远程登录mysql了 ### 7. 添加系统服务,并设置开机启动 1. 复制启动脚本到 /etc/init.d中 ~~~ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld ~~~ 执行之后,重启mysql服务就可以执行下边的操作了 ~~~ service mysqld restart ~~~ 2. 添加到系统服务 ~~~ chkconfig --add mysqld chkconfig mysqld on ~~~ 到这里,mysql的安装就完成了。