很少有写关于数据库的文章,这里对MySQL数据库的基础进行一个总结。 这里所说的MySQL其实是MariaDB,给不知道的同学解释一下,MariaDB是MySQL数据库的自由开源分支,使用上基本与mysql一样,自从mysql被Oracle收购后,mysql前途未卜,所以建议使用MariaDB。
安装mysql数据库
- 直接yum安装(推荐),不建议使用编译安装(特殊要求除外)。
yum install -y mariadb-server mariadb-client
- 二进制安装
# useradd -r mysql # 创建mysql用户
# tar xf mariadb-VERSION.tar.xz -C /usr/local
# cd /usr/local
# ln -sv mariadb-VERSION mysql
# cd /usr/local/mysql
# chown -R root:mysql ./*
# mkdir /mydata/data -pv # 创建数据目录
# chown -R mysql.mysql /mydata/data/
# scripts/mysql_install_db --user=mysql -datadir=/mydata/data
# cp support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# cp support-files/my-large.cnf /etc/my.cnf # 创建配置文件
基本配置
默认配置文件:/etc/my.cnf
默认数据目录:/var/lib/mysql/
修改root密码
默认root密码为空,这是非常不安全的。通过mysqladmin -uroot password
命令可直接创建密码。
如果是root密码忘记,需要修改。则需要进入安全模式。
# 停止mysql
# systemctl stop mariadb
# 进入安全模式
# mysqld_safe --skip-grant-tables
# 重新开一个shell,然后直接用root登录,无需密码
# mysql -uroot
# 给root重置密码
> grant all privileges on *.* to 'root'@'localhost' identified by 'password' with grant option;
> flush privileges;
# 重启mysql服务
# systemctl restart mariadb
创建用户
创建test用户,密码为1234 ‘%’ 表示任意IP,’localhost’表示只允许本地登录
- 本地登录
CREATE USER 'test'@'localhost' IDENTIFIED BY '1234';
- 远程登录
CREATE USER 'test'@'%' IDENTIFIED BY '1234';
用户授权
# 请注意,默认root用户只能本地登录,如果需要远程登录,就需要重新授权。
# 带上WITH GRANT OPTION,root用户就可以权限传递给其他用户。
> grant all privileges on *.* TO 'root'@'%' identified by 'xxxx' WITH GRANT OPTION;
> flush privileges;
# 所有权限
> grant all privileges on *.* to 'test'@'localhost' identified by '1234';
> flush privileges;
# 部分权限
> grant select,delete,update,create,drop on . to test@'%' identified by '1234';
> flush privileges;
删除用户
> Delete FROM user Where User='test' and Host='localhost';
> flush privileges;
# 删除用户的数据库
> drop database testDB;
# 删除账户及权限:
> drop user 用户名@'%';
基本操作
- 列出所有数据库
show databases;
- 切换数据库
use databases;
- 列出所有表
show tables
- 显示数据表结构
describe table
- 删除数据库和表
drop database 数据库名;
drop table 数据表名;