Mariadb 配置
安装
- 更新源
sudo apt-get update
- 安装
sudo apt-get install mariadb-server
- 查看MeriaDB是否运行
service mysql status
- 安装 mysql_secure_installation 提高数据库服务器的安全性
sudo mysql_secure_installation
, 安装过程中设置管理员密码,其他全选 Y 即可
配置
第一次安装后并不能直接登录,按照以下方法进行设置
sudo mysql -u root # I had to use "sudo" since it was a new installation
mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
sudo service mysql restart
然后就可以使用 mysql -u root -p
并输入设置好的管理员密码就可以登录
配置远程访问
- 添加远程访问账户
create user 'newuser'@'%' identified by '123456';
% 代表任意 IP 都可以访问 - 修改配置文件
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
将 bind-address 改为 0.0.0.0
用户管理
创建用户
- 方法 1:
create user newuser@localhost identified by '123456';
- 方法 2:
insert into mysql.user(user,host,password) values('newuser','localhost',password('123456'));
- 新建一个 newuser 用户并且授权全部操作权限
grant all privileges on *.* to newuser@localhost identified by '123456';
*.*
中前面的号用来指定数据库名,后面的号用来指定表名
然后就可以使用 mysql -u newuser -p
输入密码进行登录
查看当前用户
select user from mysql.user;
删除用户
drop user newuser@localhost;
权限管理
- 查看用户权限
show grants for newuser@localhost;
- 指定部分授权
grant insert,update,delete,select on *.* to newuser@localhost;
数据库操作
- 创建数据库
CREATE DATABASE newdatabase;
- 删除数据库
DROP DATABASE newdatabase;
- 选择数据库
USE newdatabase;
表操作
-
事务操作
在进行 sql 数据处理时,请开启事务,避免出现误删操作时无法回滚- START TRANSACTION; 开启事务
- COMMIT; 提交修改
- ROLLBACK; 回滚操作
-
创建表
create table users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, birthdate DATE, is_active BOOLEAN DEFAULT TRUE );
-
删除表
DROP TABLE users;
-
插入数据
INSERT INTO users (username, email, birthdate, is_active) VALUES ('test', 'test@runoob.com', '1990-01-01', true);
-
查询表
-- 选择所有列的所有行 SELECT * FROM users; -- 选择特定列的所有行 SELECT username, email FROM users; -- 添加 WHERE 子句,选择满足条件的行 SELECT * FROM users WHERE is_active = TRUE; -- 添加 ORDER BY 子句,按照某列的升序排序 SELECT * FROM users ORDER BY birthdate; -- 添加 ORDER BY 子句,按照某列的降序排序 SELECT * FROM users ORDER BY birthdate DESC; -- 添加 LIMIT 子句,限制返回的行数 SELECT * FROM users LIMIT 10;