阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7下MySQL 5.7安装、配置与应用

199次阅读
没有评论

共计 4237 个字符,预计需要花费 11 分钟才能阅读完成。

5.7 和之前版本的 MySQL 有一些不同,现把 CentOS 7 下 MySQL 5.7 安装、配置与应用完整过程记下来,或许对新手来说有用。

本文描述的安装是采用通用的二进制压缩包(linux – Generic)以解压方式安装,相当于绿色安装了。
 
一、下载通用安装二进制包
 
先下载 mysql 安装包:打开 http://dev.mysql.com/downloads/mysql/
选择 linux – Generic 并在其下选择
Linux – Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive
进行下载。可以先下载到一个临时目录里,解压后,得到两个包:
mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz 
mysql-test-5.7.11-linux-glibc2.5-x86_64.tar.gz
只需要 mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz 这个包就行了。
 
二、建立用户和目录
 
建立用户 mysql,组 mysql。 后面 mysql 就使用这个用户来运行(注意这也是 mysql 启动脚本中默认的用户,因此最好不要改名)。
#groupadd mysql
#useradd -r -g mysql mysql
(使用 - r 参数表示 mysql 用户是一个系统用户,不能登录)
 
建立目录 /work/program,后面 mysql 就安装在这个目录下面。
#mkdir /work/program
 
三、安装
 
【解压】
将前面得到的 mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz 解压至 /work/program 目录下
#tar zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /work/program
 
这时在 program 下得到的目录名很长,如果不想改名,则可以建立一个联接:
#ln -s mysql-5.7.11-linux-glibc2.5-x86_64 mysql
此后就可以用 /work/program/mysql 来找到 mysql 的安装目录了
 
注意,如果 mysql 目录下没有 data 目录,手动建一个。
 
【目录权限设置】
将 mysql 及其下所有的目录所有者和组均设为 mysql:
#cd /work/program/mysql
#chown mysql:mysql -R .
 
【初始化】
#/work/program/mysql/bin/mysqld –initialize –user=mysql –datadir=/work/program/mysql/data –basedir=/work/program/mysql
注意:
1. data 目录解压后没有,需要手动建立(见上文);
2. mysql5.7 和之前版本不同,很多资料上都是这个命令
…../scripts/mysql_install_db –user=mysql
 而 5.7 版本根本没有这个。
 
初始化成功后出现如下信息:
201x-xx-xxT07:10:13.583130Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
201x-xx-xx T07:10:13.976219Z 0 [Warning] InnoDB: New log files created, LSN=45790
201x-xx-xx T07:10:14.085666Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
201x-xx-xx T07:10:14.161899Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 1fa941f9-effd-11e5-b67d-000c2958cdc8.
201x-xx-xx T07:10:14.165534Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.
201x-xx-xx T07:10:14.168555Z 1 [Note] A temporary password is generated for root@localhost: q1SLew5T_6K,
 
注意最后一行,这也是和之有版本不同的地方,它给了 root 一个初始密码,后面要登录的时候要用到这个密码。
 
【配置】
将 mysql/support-files 下的 my-default.cnf 改名为 my.cnf,拷到 /etc 下(或者考到{mysql}下,然后作一个软链接到 /etc 下):
#cp /work/program/mysql/support-files/my-default.cnf /etc/my.cnf
my.cnf 中关键配置:
[mysqld]
basedir = /work/program/mysql
datadir = /work/program/mysql/data
port = 3306
socket = /work/program/mysql/tmp/mysql.sock
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
注意,tmp 目录不存在,请创建之。
 
如果不把 my.cnf 拷到 /etc 下,运行时会出现:
mysqld: Can’t change dir to ‘/usr/local/mysql/data/’ (Errcode: 2 – No such file or directory)
这样的出错提示,说明它没找到 my.cnf 中的配置;而去找了程序编译时的默认安装位置:/usr/local/mysql
 
四、运行
 
【运行服务器程序】
#{mysql}/bin/mysqld_safe&
注:在这个启动脚本里已默认设置 –user=mysql;在脚本末尾加 & 表示设置此进程为后台进程,区别就是在控制台输入 bg,即可将当前进程转入后台,当前 shell 可进行其他操作。
【停止 mysql】
{mysql}/bin/mysqladmin -uroot -p
(注意此时的 root 是指 mysql 的 root 用户)
 
五、设置 mysql 以服务运行并且开机启动
 
将 {mysql}/ support-files/mysql.server 拷贝为 /etc/init.d/mysql 并设置运行权限
 
#cp mysql.server /etc/init.d/mysql
#chmod +x /etc/init.d/mysql
 
把 mysql 注册为开机启动的服务
#chkconfig –add mysql
 
当然也可以手动进行服务的开启和关闭:
#/etc/init.d/mysql start
#/etc/init.d/mysql stop
 
 
六、客户端连接测试
 
#{mysql}/bin/mysql -uroot -p
此时要求输入密码,就是前面初始化时生成的密码。
这时如果连接服务的时候出现错误:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
则需要在在 my.cnf 中填加:
[client]
socket = /work/program/mysql/tmp/mysql.sock
 
连上后,在做任何操作前,mysql 要求要改掉 root 的密码后才能进行操作。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> alter user ‘root’@’localhost’ identified by ‘xxxxxxx’;
 
七、TIPS
 
【查看 mysql 是否运行】
ps -ef|grep mysqld
netstat -lnp | grep -i mysql
 
【mysql 启动时读取配置文件 my.cnf 的顺序】
可以运行如下命令查看:
./bin/mysqld –verbose –help |more
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
可以看到,启动时可以从上述目录下读取配置文件 my.cnf。如果当前 my.cnf 文件不位于上述位置,则必须考过去或做链接。

MySQL 5.7 新特性之 Generated Column(函数索引)http://www.linuxidc.com/Linux/2016-02/128066.htm

升级到 MySQL 5.7 解决分区问题  http://www.linuxidc.com/Linux/2016-02/128060.htm

MySQL 5.7 完美的分布式事务支持 http://www.linuxidc.com/Linux/2016-02/128053.htm

MySQL 5.7 新特性详解 http://www.linuxidc.com/Linux/2016-01/127636.htm

MySQL 5.7.11 发布下载 http://www.linuxidc.com/Linux/2016-02/128268.htm

在 CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本  http://www.linuxidc.com/Linux/2016-03/129187.htm

更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-04/130414.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计4237字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中