一:先来查下当前是否有安装mysql:rpm -qa |grep mysql

检测到系统已存在NGINX 检测到系统已存在MySQL_检测到系统已存在NGINX

查询到我当前的系统有这个文件,那么进行删除。

二:对当前mysql进行删除:

rpm -e  mysql-libs:普通删除

检测到系统已存在NGINX 检测到系统已存在MySQL_MySQL_02

提示这个的原因是因为有依赖其他的文件,下面我们要进行强制删除:rpm -e --nodeps mysql-libs,删除后我们再用rpm-qa|grep mysql查询下

检测到系统已存在NGINX 检测到系统已存在MySQL_远程连接_03

可以看到mysql已经删除完毕了

 

三:安装MySQL

1、安装编译代码需要的包:yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

检测到系统已存在NGINX 检测到系统已存在MySQL_远程连接_04

此处yum命令如果执行失败,是因为CentOS6的镜像源被官方移除了,解决方法可以参考:

https://www.xmpan.com/944.html

2、下载Mysql,此处我准备了Mysql-5.6.14版本:

链接:https://pan.baidu.com/s/1xafm7mImEx-_RI-c4bv6eQ 
提取码:34cj 

3、下载好后,将安装包上传到/opt目录下

检测到系统已存在NGINX 检测到系统已存在MySQL_检测到系统已存在NGINX_05

4、解压mysql压缩包:tar -zxvf mysql-5.6.14.tar.gz

检测到系统已存在NGINX 检测到系统已存在MySQL_远程连接_06

5、进入到解压的mysql目录:cd mysql-5.6.14

6、执行编译安装:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

检测到系统已存在NGINX 检测到系统已存在MySQL_远程连接_07

7、执行编译并且进行安装: make && make install

检测到系统已存在NGINX 检测到系统已存在MySQL_MySQL_08

 

自此,Mysql已经安装完毕了,默认安装在了usr/local路径下,接下来进行MySQL配置

 

四:MySQL配置

1、新增mysql用户组与用户

使用cat /etc/group |grep mysql 查看是否有mysql用户组,没有则创建mysql用户组:groupadd mysql

检测到系统已存在NGINX 检测到系统已存在MySQL_远程连接_09

使用cat /etc/passwd |grep mysql 查看是否有mysql用户,没有则创建mysql用户:useradd -g mysql mysql

检测到系统已存在NGINX 检测到系统已存在MySQL_mysql_10

2、修改/usr/local/mysql权限为mysql用户所有:chown mysql:mysql /usr/local/mysql

检测到系统已存在NGINX 检测到系统已存在MySQL_MySQL_11

3、进入到mysql的安装路径,执行初始化配置脚本,创建系统自带的数据库和表

(1):进入mysql安装路径:cd /usr/local/mysql

检测到系统已存在NGINX 检测到系统已存在MySQL_mysql_12

(2):执行初始化配置:scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

检测到系统已存在NGINX 检测到系统已存在MySQL_MySQL_13

4、启动mysql

(1)拷贝mysql.server服务文件到/etc/init.d/mysql目录下:cp support-files/mysql.server /etc/init.d/mysql

检测到系统已存在NGINX 检测到系统已存在MySQL_远程连接_14

(2):设置mysql自动启动:chkconfig mysql on

检测到系统已存在NGINX 检测到系统已存在MySQL_mysql_15

(3):手动启动mysql:service mysql start

检测到系统已存在NGINX 检测到系统已存在MySQL_MySQL_16

(4):查看mysql是否已启动:netstat -anp |grep mysql

检测到系统已存在NGINX 检测到系统已存在MySQL_mysql_17

证明myql已经启动成功

 

5、修改mysql密码

(1)切换到mysql的bin目录下:cd /usr/local/mysql/bin

检测到系统已存在NGINX 检测到系统已存在MySQL_远程连接_18

(2)执行mysql文件:./mysql -uroot

检测到系统已存在NGINX 检测到系统已存在MySQL_远程连接_19

(3)设置密码:

展示当前所有库:show databases;

使用mysql库:use mysql;

更新密码:update user set password=password('root');

检测到系统已存在NGINX 检测到系统已存在MySQL_MySQL_20

 

6、配置mysql环境变量

(1)编辑/etc/profile文件,在PATH变量下追加mysql的bin路径

检测到系统已存在NGINX 检测到系统已存在MySQL_检测到系统已存在NGINX_21

(2)刷新/etc/profile文件,使配置立即生效:source /etc/profile

检测到系统已存在NGINX 检测到系统已存在MySQL_mysql_22

(3)刷新后就可以在任意路径下连接mysql了:

检测到系统已存在NGINX 检测到系统已存在MySQL_MySQL_23

 

 

五、设置mysql可以远程连接登录

1、首先在linux中连接上mysql,执行mysql语句:

use mysql;

select user,host from user;

检测到系统已存在NGINX 检测到系统已存在MySQL_mysql_24

发现当前的mysql配置是只允许linux本机连接的,下面配置成可以远程连接

(2)修改mysql可以远程连接: update user set host='%' where user='root';

此处会报个错误:Duplicat entry '%-root' for key 'PRIMARY',忽略即可

检测到系统已存在NGINX 检测到系统已存在MySQL_远程连接_25

(3)刷新配置:flush privileges

检测到系统已存在NGINX 检测到系统已存在MySQL_检测到系统已存在NGINX_26

(4)使用Windows的navicat连接到Linux的mysql测试:

检测到系统已存在NGINX 检测到系统已存在MySQL_检测到系统已存在NGINX_27

连接失败,此处我首先猜测的原因是Linux开启了防火墙,连接不上,下面进行验证下:

查看防火墙状态:service iptables status

检测到系统已存在NGINX 检测到系统已存在MySQL_MySQL_28

观察到防火墙确实是开启的,下面将防火墙关了:service iptables stop

检测到系统已存在NGINX 检测到系统已存在MySQL_mysql_29

再进行远程连接:

检测到系统已存在NGINX 检测到系统已存在MySQL_mysql_30

连接成功了,大功告成。