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)    收藏  举报

导航