centos7 安装MariaDB数据库
1、添加 MariaDB yum源
#添加MariaDB.repo配置文件 vim /etc/yum.repos.d/MariaDB.repo #添加内容 [mariadb] name = MariaDB baseurl=https://mirrors.ustc.edu.cn/mariadb/yum/10.5/centos7-amd64 gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
enabled=1 gpgcheck=1
#刷新缓存
yum clean all
yum makecache
2、安装 MariaDB
#yum命令安装 yum install MariaDB-server MariaDB-client -y #启动服务 systemctl start mariadb #设置开机启动 systemctl enable mariadb #查看状态 systemctl status mariadb
3、配置 MariaDB
#根据实际情况用Y/N回复以下问题:设置 MariaDB 的 root 账户密码,删除匿名用户,禁用 root 远程登录,删除测试数据库,重新加载权限表。也可以全都选择了Y,然后按回车。
mysql_secure_installation
3、登录 MariaDB
#查看版本,确认安装成功 mysql --version #登录数据库 mysql -uroot -p
4、MariaDB 配置远程访问权限
#在第3步中如果禁用 root 远程登录选择 Y 的话就不能在别的电脑连接到数据库,这时就需要给对应的 MariaDB 账户分配权限,允许使用该账户远程连接到MariaDB。可以输入以下命令查看账号信息: select User, host from mysql.user;
#root账户中的host项是localhost表示该账号只能进行本地登录,我们需要修改权限,输入命令: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; #修改权限。%表示针对所有IP,password表示将用这个密码登录root用户,如果想只让某个IP段的主机连接,可以修改为: GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.71.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION; #刷新 FLUSH PRIVILEGES;
5、设置防火墙
如果还是不能远程连上数据库的话应该就是3306端口被防火墙拦截了,这时我们就需要关闭防火墙或者开放防火墙端口。
关闭防火墙:
#停止firewall systemctl stop firewalld.service #禁止firewall开机启动 systemctl disable firewalld.service #开放防火墙端口,开启后要重启防火墙: firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
6、数据库常用命令
#登录数据库 mysql (-h)-u 用户名 -p 用户密码 #新增用户 grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码" #创建xx数据库: create database xx character set utf8;
create database xx DEAFAULT CHARSET utf8 COLLATE utf8_general_ci; #创建xx表 create table xx(字段列表); #显示所有数据库 show databases; #使用xx数据库 use xx; #显示所有表 show tables; #查看xx表结构 desc xx; #查看xx表的创建结构 show create table xx; #将xx表中记录清空 delete from xx; #删除xx库/表 drop database xx; drop table xx; #将test数据库导出到test.sql mysqldump -uroot -p test > test.sql #将test.db导入到test数据库 use test; source ./test.sql; #如果出现了中文乱码的 mysql -uroot -p --default-character-set=utf8
create database xx character set utf8;