centos7安装mariadb示例
一、查看是否已安装mariadb: rpm -qa | grep -i mariadb
二、安装: yum install mariadb-server -y
三、启动:
# systemctl start mariadb.service
# systemctl enable mariadb.service
# mysql
mysql> exit
四、设置mysql root密码:
# mysql_secure_installation
接下来是一系列配置提示:
1.输入本地root用户密码验证
2.是否设置root密码,这个是sql的root密码
等等。
五、本地登录mysql:
# mysql -uroot -p
六、通过GRANT命令,设置root用户的登录权限:
1. 本地登录:增加root用户授权通过本地机(localhost)访问,密码“yourpassword”
mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
2.远程登录:使用通配符,授与root用户从任何其它主机发起的访问
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
七、通过user表,设置root用户的登录权限:
直接使用update语句修改user表:使用mysql工具,使用root用户或其他用户登录到mysql,转到mysql数据库。user表在mysql数据库中。
查看user表:
mysql> use mysql
mysql> select host,user from user;
mysql> update user set host='localhost' where user='root';
mysql> flush privileges;//只允许root在本机登录
mysql> update user set host='%' where user='root';
mysql> flush privileges;//允许root远程访问
注意,以上一定要加flush语句。
另外,如果要建新用户,则用grant语句比较方便,记住语句grant总是创建新用户
八、开放端口:
systemctl status firewalld
irewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --add-service=mysql --permanent
fireall-cmd --reload
systemctl restart firewalld
centos 6的防火墙是iptables
centos 7的防火墙是firewall
1.查看防火墙是否开启状态: systemctl status firewalld
注:systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体
2.查看所有打开的端口: firewall-cmd --zone=public --list-ports
3.查看一个端口是否开启,如3306:firewall-cmd --zone=public --query-port=3306/tcp
4.添加一个端口,如3306:firewall-cmd --zone=public --add-port=3306/tcp
5.删除一个端口,如3306:firewall-cmd --zone=public --remove-port=3306/tcp
6.查看所有开放的服务: firewall-cmd --list-service 或指定区域--zone=public
7.增加一个服务: firewall-cmd --add-service=mysql 参数--permanent永久生效,没有此参数重启后失效
8.删除一个服务: firewall-cmd --remove-service=mysql
9.更新防火墙规则: fireall-cmd --reload
九、忘记root密码
1.vim /etc/my.cnf ,在mysqld下面添加 --skip-grant-tables
或者
输入命令:# mysqld_safe --user=mysql --skip-grant-tables --skip-networking
--skip-grant-tables:不启动grant-tables(授权表),跳过权限控制
--skip-networking:跳过TCP/IP协议,只在本机访问(可以不用)
2.# mysql -u root mysql
3. select host,user,password from user;
4. update user set password=’yourpassword';
5. flush privileges;
quit
十、卸载mariadb
# rmp -qa | grep mari*
# yum -y remove mari*
十一、常用命令:
查看该用户是否有远程登录的权限
mysql> SELECT * FROM mysql.user;
| User | Host |
| tommy | % |
查看 MySQL Server 是不是监听了 3306 端口
执行命令netstat -tulpen
如果服务器是 CentOS7,将 MySQL 服务加入防火墙
sudo firewall-cmd --zone=public --permanent --add-service=mysql
sudo systemctl restart firewalld
十二、不能登录mysql
错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor: YES)
解决:1. vim /etc/my.cnf,在最后一行加上skip-grant-tables
2. systemctl restart mysqld
3. mysql -uroot -p ,输入任意密码都可以登录
4. update mysql.user authentication_string='yourpassword' where user='root' and host='localhost';
mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
flush privileges;
5. 删除 vim /etc/my.cnf刚才加的最后一行skip-grant-tables
6. systemctl restart mysqld
posted on 2017-02-19 16:38 myworldworld 阅读(103) 评论(0) 收藏 举报
浙公网安备 33010602011771号