https://blog.csdn.net/reserved_person/article/details/70800985
环境:
1、操作系统:CentOS 7
2、安装版本: mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
3、下载地址:http://dev.mysql.com/downloads/mysql/
4、下载说明:上边的下载地址是最新版的,如果想下载老版本可以点击页面中的超链接“Looking for previous GA versions?”
5、特殊说明:Linux下MySQL5.6与MySQL5.7安装方法略有不同,本文以5.6为主,5.7版本会哟一点不同,下文会指出
安装步骤
0、卸载老版本MySQL
查找并删除mysql有关的文件
find / -name mysql rm -rf
上边查找到的路径,多个路径用空格隔开
#或者下边一条命令即可
find / -name mysql | xargs rm -rf
1、在安装包存放目录下执行命令解压文件:
tar -zxvf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
2、删除安装包,重命名解压后的文件
rm -f mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.31-linux-glibc2.5-x86_64/ mysql
3、添加mysql用户组和mysql用户
先检查是否有mysql用户组和mysql用户
groups mysql
若无,则添加;
groupadd mysql
useradd -r -g mysql mysql
若有,则跳过;
4、进入mysql目录更改权限
cd mysql/
chown -R mysql:mysql ./
5、执行安装脚本
在mysql安装目录下执行,这里mysql5.6和mysql5.7执行语句不同,如下语句
mysql5.6:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
mysql5.7:
./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
如果报错为:-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory:
执行 yum -y install perl perl-devel
后在初始化数据库即可。
yum install -y perl-Data-Dumper 即可。。
mysql5.6:
安装完之后修改当前目录拥有者为root用户,修改data目录拥有者为mysql
chown -R root:root ./
chown -R mysql:mysql data
6、复制配置文件到 /etc/my.cnf 并修改配置
[root@localhost mysql]# cp -a ./support-files/my-default.cnf /etc/my.cnf
[root@localhost mysql]# vi /etc/my.cnf
端口号默认3306,根据实际情况修改
#数据库安装路径
basedir = /usr/local/mysql
#数据库数据data路径
datadir = /usr/local/mysql/data
#数据库编码
character_set_server=utf8
#socket文件路径(mysql服务启动后自动生成)
socket = /tmp/mysql.sock
#可以在安装目录下新建一个log目录:用来存放错误日志
#log-error=/usr/local/mysqlService/mysql/log/mysqld.log
7、将MySQL的服务脚本放到系统服务中(完成此步骤后可以在任意目录启动mysql服务)
#mysql.server这个文件被重命名为AAA,则启动服务命令为service AAA start {stop ,restart}
[root@localhost mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysqld
可以创建一个软连接方便mysql文件的管理,这个看个人意愿
[root@localhost mysql]# ln -s /usr/local/mysql/ /usr/bin/
-------------------------------------------------------------------------------------------------
附:如果需要自启mysql服务则运行下面步骤3之后重启即可
1、cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 将服务文件拷贝到init.d下,并重命名为mysqld
2、chmod +x /etc/init.d/mysqld 赋予可执行权限
3、chkconfig --add mysqld 添加服务
4、chkconfig --list 显示服务列表
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig --level 345 mysql on
5、reboot重启电脑
6、netstat -na | grep 3306,如果看到有监听说明服务启动了
8、添加系统环境变量:(添加之后可以在任何目录启动mysql工具)
[root@localhost mysql]# vim /etc/profile
在最下面添加环境环境变量:(PATH中第一次写入的export PATH=$PATH:$MYSQL_HOME/bin无法识别,所以改为绝对路径,原因再补)
MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:/usr/local/mysql/bin
保存退出后使环境变量立即生效
[root@localhost mysql]# source /etc/profile
9、mysql登录root账号 添加root密码
首先打开MySQL服务
service mysqld status #查看状态
service mysqld start #启动
首先在/etc/my.cnf文档下面添加 skip-grant-tables这句话,然后再执行mysql -uroot -p这句话,不用密码登录,在执行修改密码命令
use mysql;
update user set password=passworD("root") where user='root';
flush privileges;
然后在/etc/my.cnf文档下面注释掉 skip-grant-tables这句话,即可密码登录
添加远程登录
grant all privileges on *.* to root@'%' identified by 'root' with grant option;
flush privileges;
10、centos 7添加 3306 防火墙规则,才可远程登录
打开3306端口,在命令下执行如下一句
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
查看规则是否生效
iptables -L -n //或者 service iptables status