以下是我自己在安装过程中整理出来的安装步骤和经验
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.在系统中创建文件夹管理mysql安装包 mkdir /usr/mysql
下载 wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz
解压 tar -zxvf mysql-5.7.13.tar.gz
---------------------------------------------------------------------------------------------------------------------------------
2、安装编译时依赖的包
yum install cmake
yum install make
yum install gcc
yum install gcc-c++
yum install ncurses
yum install ncurses-devel
yum install perl-Data-Dumper
yum install libicu-devel
yum install libquadmath-devel
yum install python-devel
yum install bzip2-devel
yum install bison
如果出错,请更换yum源,因为CentOS默认的yum源是国外的,有可能造成网络访问的原因,
更换yum源的步骤如下,(过程的快慢依赖与你的网络环境,我们公司的网络是龟速)
1、进入源文件夹
cd /etc/yum.repos.d/
2.下载源repo,请按照对应版本下载(我这里下载的是网易的,你也可以下载其他的)
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
3.备份Base.repo
mv CentOS-Base.repo CentOS-Base.repo.bk
替换Base.repo
mv CentOS7-Base-163.repo CentOS-Base.repo
4.清空缓存,并重新生成yum缓存
yum clean all
yum update
------------------------------------------------------------------------------------------------------------------------------
3、下载boost类库,mysql5版本以上的源码安装都需要boost类库,MySQL5.7.x需要boost1.59以上。 cd /usr/local/src/
wget http://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.zip
unzip boost_1_59_0.zip
cd boost_1_59_0
./bootstrap.sh
./b2 #编译boost包
./b2 install
-------------------------------------------------------------------------------------------------------------------------------------
4、清除MariaDB,系统安装完成后,默认安装了mariadb-libs包,需要先清除掉,因依赖关系,系统会同时删除掉postfix。
yum remove mariadb-libs
--------------------------------------------------------------------------------------------------------------------------------------
5、设置预编译参数,更多的预编译参数请参考http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html#cmake-general-options
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/src/boost_1_59_0 \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6、编译并安装(这一步需要花费很长时间,依赖于你的机器好坏,兄弟我花了3个小时(不过我是在虚拟机上干的),
表示mysql真的需要优化编译操作了,有些时候貌似停在那不动了,别担心那不是编译当掉了。
只需等待即可,千万别终止操作,否则会从头再来,想想就发憷)
make -j `grep processor /proc/cpuinfo | wc -l`
make install
-j参数表示根据CPU核数指定编译时的线程数,可以加快编译速度。默认为1个线程编译,经测试单核CPU,1G的内存,编译完需要将近1个小时
注意事项:如果中途编译失败了,需要删除cmake生成的预编译配置参数的缓存文件和make编译后生成的文件,再重新编译。
rm -f CMakeCache.txt
make clean
以下是我编译过程中停顿比较久的几步(好像带有 item_geofunc都比较久)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7、新建mysql组和用户并且把安装目录授权给mysql用户,一般mysql都是通过mysql用户来进行管理的
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql.mysql /usr/local/mysql/
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
8、设置配置文件
cp support-files/my-default.cnf /etc/my.cnf
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
9、设置编码集为utf-8
vim /etc/my.conf
把以下配置写入配置文件(设置这一步是为了防止初始化数据库的时候报字符集的错)
[client]
default-character-set = utf8
[mysqld]
character_set_server=utf8
default-storage-engine=INNODB
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
10、初始化数据库
cd /usr/local/mysql
./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
./bin/mysql_ssl_rsa_setup
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
11、配置mysql服务,并设置开机启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld # 添加到系统服务
chkconfig mysqld on # 开机启动
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
12、启停服务
service mysqld start # 启动mysql服务
service mysqld stop # 停止mysql服务
service mysqld restart # 重新启动mysql服务
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
13、给mysql命令建立连接,由于系统的默认命令都是在/usr/bin中找的,所以需要建立连接(其他的mysql命令同样也可以这样设置)
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/local/mysql/bin/mysqld /usr/bin
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------测试登陆-------------------------------------------------------------------------------------------------------------
好了,你可以试试能不能登陆了,使用mysql -u root 登陆mysql 如果需要密码(安装时视版本和情况会自动设置初始密码,我的没有)
如果登陆不上需要密码就看下~/.mysql_secre文件里面的日志,里面有密码记录。
----------------------------------------------------------------------------------------------测试在win7上用navicat连接mysql------------------------------------------------------------------------------
想要在win7中用navicat连接远程主机上的mysql需要远程主机开启mysql的端口,以及80端口,22端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
然后设置navicat如下图(需要设置SSH连接)
Host Name/IP Address :你的主机ip
User name :连接mysql的用户名
----------------------------------------------------------------------------------------------navicat不使用ssh进行连接CentOS中的mysql-------------------------------------
想要开启不加密的传输,需要使用
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
需要开放3306端口
这样就可以使用不加密的普通传输协议,只需要设置一个常规参数就可以连接上了