1、检查系统是否安装过mysql
//检查系统中有无安装过mysql
rpm -qa|grep mysql
//查询所有mysql 对应的文件夹,全部删除
whereis mysql
find / -name mysql
2、卸载CentOS7系统自带mariadb
复制代码
查看系统自带的Mariadb
[root@CDH-141 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
卸载系统自带的Mariadb
[root@CDH-141 ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
删除etc目录下的my.cnf ,一定要删掉,等下再重新建,之前我将就用这个文件,后面改配置各种不生效
[root@CDH-141 ~]# rm /etc/my.cnf
复制代码
3、检查有无安装过mysql 用户组,没有的话创建
复制代码
//检查mysql 用户组是否存在
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
// 创建mysql 用户组和用户
groupadd mysql
useradd -r -g mysql mysql
复制代码
4、下载安装,从官网安装下载,我下载的位置在/usr/local/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
5、解压安装mysql
tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
顺便改一下名字mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql
6、更改mysql 目录下所有文件夹所属的用户组和用户,以及权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
7、进入mysql/bin/目录,编译安装并初始化mysql,务必记住数据库管理员临时密码
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysq
8、编写配置文件 my.cnf ,并添加配置
进入配置文件
vi /etc/my.cnf
在插入模式下编写,完成后保存,当然这个可以自己添加,
复制代码
[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
表名大小写不明感,敏感为
lower_case_table_names=1
复制代码
9、启动mysql 服务器
复制代码
查询服务
ps -ef|grep mysql
ps -ef|grep mysqld
结束进程
kill -9 PID
启动服务
/usr/local/mysql/support-files/mysql.server start
复制代码
10、添加软连接,并重启mysql 服务
//添加软连接
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
//重启mysql服务
service mysql restart
11、登录mysql ,密码就是初始化时生成的临时密码
mysql -u root -p
12、修改密码,因为生成的初始化密码难记
注意: 分号(;) 结尾
set password for root@localhost = password('root');
12、开放远程连接
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
13、设置开机自启
复制代码
//将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
//赋予可执行权限
chmod +x /etc/init.d/mysqld
//添加服务
chkconfig --add mysqld
//显示服务列表
chkconfig --list
复制代码
生活不止眼前的苟且,还有诗和远方
Navicat链接报错:
在my.cnf配置文件中的[mysqld]区域添加skip-name-resolve
参考:https://www.cnblogs.com/wpnr/p/14072634.html
参考:https://www.cnblogs.com/kevingrace/p/6196885.html
环境:CentOS7+mysql5.7
1、mariadb卸载(若存在)
通过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包
通过 rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps 命令装卸 mariadb
通过 rpm -qa | grep mariadb 命令再次查看 mariadb 的安装包
2、安装mysql
执行:
yum -y install wget
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就开始安装MySQL服务器。
yum -y install mysql-community-server
3、MySQL数据库设置
systemctl start mysqld.service
查看MySQL运行状态,运行状态如图:
systemctl status mysqld.service
通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
如下命令进入数据库:
mysql -uroot -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
查看 mysql 的安装包
rpm -qa | grep mysql
4、 开启mysql的远程访问
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;
exit;
5、防火墙设置
通过以下命令,关闭 firewall:
systemctl stop firewalld.service;
systemctl disable firewalld.service;
systemctl mask firewalld.service;
安装 iptables 防火墙
yum -y install iptables-services
通过以下命令启动设置防火墙:
systemctl enable iptables;
systemctl start iptables;
编辑防火墙,添加端口
vim /etc/sysconfig/iptables
点击 i 键进入插入模式
在相关位置,写入以下内容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
点击 ESC 键退出插入模式
点击 : 键,输入 wq 敲回车键保存退出(: 为英文状态下的)
重启防火墙使配置生效
systemctl restart iptables.service
设置防火墙开机启动
systemctl enable iptables.service
6、客户端连接mysql
通过 ifconfig 命令查看 ip
通过ip新建 navicat 的连接
7、连接过程中出现的问题和解决
(1)出现 10060 unknow error
大概意思是 拒绝访问这个MySQL服务,解决如下:
进入MySQL,选择MySQL数据库,查看user=root 信息
可以看到,root的用户只允许本地访问,现在需要改成所有或者指定IP
改成所有都行,别忘记刷新flush privileges 就是刷新权限,最后再试试能不能远程连接
2、报错“2013-Lost connect to MySQL server at 'waiting for initial communication packet',system error: 0 "internal error/check (No system error)"
解决:
进入etc/my.cnf
[mysqld]项中,添加skip-name-resolve