查看是否已经安装mysql和mariaDB(新版mysql会带有mariaDB), 此笔记只针对mysql
- rpm -qa|grep mysql 查看有没有安装mysql
- rpm -qa|grep maria 查看有没有安装mariaDB
最好只选择一种,两种混装可能会有问题。
一、安装mariaDB
- yum -y install mysql
- yum -y install mariadb-server
- mysql_secure_installation 设置 root密码等相关
- 第二步没安装的的话,会报错的,即ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
二、安装mysql
1. 如果使用mysql, 则需要先把mariaDB删除
$ yum -qa|grep mariaDB // 找到所有相关mariaDB的包
$ yum remove -y mariaDB-* // 删除以上的包
$ wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm // 获取源
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm // 添加源
$ yum install -y mysql
$ yum install -y mysql-server // 安装相关服务,
$ systemctl start mysql // 启动mysql服务
$ systemctl enable mysql // 开机自启动
$ mysql -u root -p // 初始化账号是root
之前遇到个坑,老版本默认密码为空,但新版默认密码是root, 所以如果在Enter password中没有输入root或者输错则会报一下错误。
如有 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ 错误, 则重新启动mysql或者添加执行权限
$ systemctl restart mysql
$ systemctl restart mysql.service
$ chmod 777 /etc/mysql
登录成功后如下 , 最后可修改默认账号和密码
三、修改密码
此时,服务器本地登录可以不用密码, 但选择数据库时会报错:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。这是由于在mysql数据库中存在匿名账户,所以登录时无论是-u root还是不使用root账号,都以匿名账号身份登录,而密码是随机的。解决步骤,先删除匿名账号,再给root账号设置密码。
1 ) 关闭登录权限验证
打开配置文件
1 [root@lunix ~]# vim /etc/my.cnf
在最后一行添加 skip-grant-tables(如原来就有,则将前面的#去掉), 保存并退出,重启mysql服务
1 [root@lunix ~]# systemctl restart mysql.service
再次登录mysql, 无需账号密码。
1 [root@lunix ~]# mysql
登录成功, 可查看本地数据库 show databases;
切换到mysql数据库, use mysql;
删除匿名账号 , (这里是因为已经删除过,所以显示0 rows, 新用户应该是显示 2 rows) , 当然,也可以不删除匿名账号, 但这样别人就可以随便登录本地mysql。
1 mysql> delete from user where user='';
设置新密码
1 mysql> UPDATE user SET password=password('您的新密码') where user='root'
刷新权限(必须,否则重启服务后之前设置的密码就无效), 最后退出即可
1 mysql> flush privileges;
2 mysql> quit;
将之前/etc/my.cnf添加的 skip-grant-tables删除或者注释 (即恢复密码登录验证)
重启mysql服务
[root@lunix ~]# systemctl restart mysql.service // 或者 service restart mysql
再次登录mysql, 此时命令行直接输入 mysql是无法登录的,表示密码错误。
1 [root@lunix ~]# mysql 2 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
正确登录, 在提示的 Enter password后输入之前设置的密码即可。
1 [root@lunix ~]# mysql -u root -p
到此,可以正常操作数据库了。
最后,对外开放3306端口, 客户端就可以登录服务器的mysql了
1 // 开放3306端口 2 [root@lunix ~]# /sbin/iptables -I(A) INPUT -p tcp --dport 3306 -j ACCEPT 3 4 // 重启网络服务 5 [root@lunix ~]# service network restart
客户端Navicat连接, 对应输入ip和密码即可, 连接名自定义
连接成功!