您的位置:首页 > 运维架构 > Linux

CentOS7搭建MySQL 5.7.17环境并安装Navicat for MySQL

2016-12-23 21:13 786 查看
一.准备:

CentOS7系统第

mysql安装包,这里使用mysql 5.7.17(下载地址:http://dev.mysql.com/downloads/mysql/),如图:



二.环境搭建:

1.创建组及用户:

此步可以跳过,但是为了方便管理mysql,也为了用在正式的生产环境中,且处于安全考虑,这里为mysql单独建立了一个组及用户:

groupadd mysqlgroup  //新建一个mysqlgroup组
useradd -g mysqlgroup mysqluser  //创建一个名叫mysqluser的用户,将其归为mysqlgroup组


2.安装MySQL 5.7.17:

直接将下载的MySQL 5.7.17解压即可。

tar -xvzf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz//也可以直接在图形化界面解压,就像我们熟悉的Windows操作一样


由于解压后的名字很长(mysql-5.7.17-linux-glibc2.5-x86_64),我们将它重命名为mysql,并将其移动到/usr/local 目录,这里为了简便,直接在图形化界面操作:



上图,效果其实等同于在命令行执行命令:tar -xvzf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 。



将解压的mysql-5.7.17-linux-glibc2.5-x86_64,重命名为mysql。



上图为将重命名为mysql的目录移动到/usr/local目录下。

chown -R mysqluser:mysqlgroup mysql //将mysql目录的所属权更改为mysqlgroup下的mysqluser用户
chmod -R 777 mysql  //赋予mysql目录读写权限


上面的命令等同于图像化操作:



如果1.创建组及用户步骤省略,则此处(设置mysqluser的拥有读写mysql目录的权限)也可以省略。

3.创建日志目录

mkdir /var/log/mariadb
chown -R mysqluser:mysqlgroup /var/log/mariadb/
mkdir /var/run/mariadb
chown -R mysqluser:mysqlgroup /var/run/mariadb/


当然创建日志目录和赋予权限也可以像第2步一样使用图形化界面操作。

4.初始化MySQL



cd /usr/local/mysql
./bin/mysqld --initialize --user=mysqluser --basedir=/usr/local/mysql


第一次初始化时,最后会显示这样的字样“A temporary password is generated for….”,显示root的临时密码。由于我的已经配置好了所以再初始化就报了一个error。

5.启动数据库

./bin/mysqld_safe --user=mysqluser //这里如果报错,请看最下面更新的问题2


注意,这时候启动mysql的时候可能会报错:Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)。

解决办法:打开/etc/my.cnf,查看是否是socket=/var/lib/mysql/mysql.sock,不是则改为它。并在终端输入以下命令,问题解决。

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock




更新

更新1:修改root密码:

还记得前面初始化mysql时候生成的临时密码吗?(格式就像这样:A temporary password is generated for root@localhost: 1mRYddaqIk(J),对,这个就是我们的root用户的密码。如果忘了,有两种办法找回来:

方法1. 如图,打开计算机搜索.mysql_secret(这是一个隐藏文件,需要显示隐藏文件操作才能看到),查看密码





但是,这种方法找到的root密码,我试了始终不对。所以还是使用第2种方法。

方法2:打开/etc 目录下的my.cnf文件,查看存放数据的目录位置:



位置如上图所示,来到/var/lib/mysq 目录,删除里面的所有东西。再重新初始化一次,就能生成新的root临时密码了。初始化MySQL代码如下:

cd /usr/local/mysql //这是你下载的MySQL解压目录
./bin/mysqld --initialize --user=mysqluser -- basedir=/usr/local/mysql


复制新的root密码:



通过方法1或者方法2,得到你的root临时密码后,接下来就是更改root的密码了:

./bin/mysql -u root -p
Enter password:  //粘贴刚才复制的密码
set password for 'root'@'localhost' =password('123456');//更改root密码的sql语句,123456是新的root密码(别忘了结尾的;号)
mysql> quit


重新登录root用户:

./bin/mysql -u root -p
Enter password:  //输入更改后的密码,我这里是123456


更新2: 遇到的一些问题及解决方法

问题1:Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) ,第一次配置的时候,遇到这个问题解决了。不知道怎么的过了几天又遇到了这个问题(有可能是删除了一些东西,具体删了啥我也不知道了,造成的)。解决办法:

先修改了my.cnf文件:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character_set_server=utf8
#socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd 
[mysql.server]
user=mysqluser
basedir=/usr/local/mysql

[client]
socket=/var/lib/mysql/mysql.sock
#socket=/tmp/mysql.sock

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d  //如果启动时报错,找不到my.cnf.d这个目录,直接在/etc目录下新建一个my.cnf.d目录就可以了


当我去找我的mysql.sock文件时,发现/var/lib/mysql/mysql.sock 和/tmp/mysql.sock 下都没有。然后重新启动了一下mysql.sock就自动生成了,问题就解决了。

su mysqluser //如果是在root用户下,就切换到mysqluser用户
cd /usr/local/mysql
./bin/mysql -u root -p //重新启动,就会自动生成mysql.sock文件
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock


问题2:
./bin/mysqld_safe --user=mysqluser
时报错

mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysqluser'.


解决:这是权限问题,

su mysqluser
./bin/mysqld_safe --user=mysqluser //在mysqluser用户下执行它,帮忙生成文件

su  //切换到root
./bin/mysqld_safe --user=mysqluser


更新:安装Navicat for MySQL

1.下载navicat_for_mysql_10.0.11_cn_linux.tar.gz :

2.安装

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm //安装CentOS7的epel源,为安装wine做准备
yum install wine //装Navicat所必须要有的
tar -zxvf navicat_for_mysql_10.0.11_cn_linux.tar.gz //解压
cd navicat_for_mysql //进入解压目录
./start_navicat  //启动


对于32位的CentOS7 来说上面的步骤应该就能用了。但是对于64位的系统,执行./start_navicat看不到任何效果。原因是缺少一些必要的包。

解决办法:

yum install libgcc.i686 //我这里报错:保护多库版本:libgcc-4.8.5-11.el7.i686 != libgcc-4.8.5-4.el7.x86_64。原因是不同版本的包引起了冲突。解决:删除冲突的包libgcc-4.8.5-4.el7.x86_64

rpm -e |grep libgcc-4.8.5-4.el7.x86_64 //删除
yum install libgcc.i686 //重新装libgcc.i686包
yum install glibc.i686
yum install freetype.i686
yum install libSM.i686
yum install libXext.i686
./start_navicat  //重新启动,看是否有反应


安装完上面的必要包后,执行./start_navicat 应该就能看到Navicat的界面了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos mysql