整理这篇博客只是为了方便以后自己安装使用,主要参考以下两篇博客:
https://blog.csdn.net/a774630093/article/details/79270080
https://blog.csdn.net/qq_36214218/article/details/80071908
1、安装wget指令(已安装跳过)
yum -y install wget
从最新版本的linux系统开始,默认的是 Mariadb而不是mysql!这里依旧以mysql为例进行展示
2、先检查系统是否装有mysql
rpm -qa | grep mysql
这里返回空值,说明没有安装
这里执行安装命令是无效的,因为centos-7默认是Mariadb,所以执行以下命令只是更新Mariadb数据库
yum install mysql
删除可用
yum remove mysql
3、下载mysql的repo源
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装mysql-community-release-el7-5.noarch.rpm包
# sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
4、安装mysql
# sudo yum install mysql-server
根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。
安装后再次查看mysql
如果报错,内容含有
Error: Package: mysql-community-libs-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libc.so.6(GLIBC_2.17)(64bit)
Error: Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libc.so.6(GLIBC_2.17)(64bit)
Error: Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: systemd
Error: Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
Error: Package: mysql-community-client-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libc.so.6(GLIBC_2.17)(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
解决:
#yum install glibc.i686
# yum list libstdc++*
5、重置密码
因为这样安装的mysql是没有初始密码的,因此无法查找到Mysql的初始密码,空密码登陆也会报错,因此这里直接跳过验证登陆
- 修改my.cnf文件 vim /etc/my.cnf
- 在[mysqld]下面添加: skip-grant-tables
- 重启mysql服务:service mysqld restart
- 登陆Mysql:mysql -uroot -p (直接点击回车,密码为空)
- 选择数据库:use mysql;
- 重置密码:update user set password=password('123456') where user='root';
flush privileges; - 退出:exit;
- 修改my.cnf文件 vim /etc/my.cnf 删除skip-grant-tables
- 重启服务:service mysqld restart
这里单独补充Mysql5.7:
有初始密码的可以使用以下语句查找
grep 'password' /var/log/mysqld.log |head -n 1
6.远程连接
#允许所有用户远程访问 修改用户名和密码为你自己的
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
#允许单个ip 修改用户名和密码为你自己的
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
#最后
mysql> FLUSH PRIVILEGES;
我使用的是root用户,执行的是如下指令
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
7、开放3306端口号
firewalld 防火墙(centos-7)运行命令,并重启:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload