安装
Arch Linux 上:
sudo pacman -S mariadb mariadb-libs
安装 mariadb 软件包之后,你必须在启动 mariadb.service 之前运行下面这条命令:
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
注意: 出于安全考虑,systemd 的 .service 文件设置了 ProtectHome=true 来禁止 MariaDB 访问 /home、/root 和 /run/user 目录内的文件。datadir 必须要放在以上文件夹之外,并且由 mysql 用户和用户组 所有。 如果要改变这个设置,你可以根据以下链接创建一个替代的 service 文件:[2] 然后 enable 或者 start mariadb.service。
提示: 如果数据目录使用的不是 /var/lib/mysql,需要在 /etc/my.cnf.d/server.cnf 文件的 [mysqld] 部分设置 datadir=<数据目录> 用下面这个命令启动数据库级别的安全配置助手,来配置一些必要的安全选项:
sudo mysql_secure_installation
连接
mysql -u root -p
显示所有的数据库:
show databases;
use uno;
show tables;
select * from names;
SELECT
select_list
FROM
table_name
ORDER BY
column1 [ASC|DESC],
column2 [ASC|DESC],
...;
MySQL
用户
添加新用户
先用 root 登录数据库 sudo mysql -p -u root
CREATE USER ‘dbcourse’@‘localhost’ IDENTIFIED BY ‘some_pass’;
授予权限
授予 dbcourse 用户全部操作权限 GRANT ALL PRIVILEGES ON test TO ‘dbcourse’@‘localhost’;
刷新权限
FLUSH PRIVILEGES;
WHERE
报错
报错:
MariaDB [test]> INSERT INTO S VALUES('S1', '精益', '20', '天津');
ERROR 1366 (22007): Incorrect string value: '\xE7\xB2\xBE\xE7\x9B\x8A' for column `test`.`S`.`SNAME` at row 1
解决: https://stackoverflow.com/questions/1168036/how-to-fix-incorrect-string-value-errors 连接数据库后:
SET NAMES 'utf8';
SET CHARACTER SET utf8;
另:检查数据库设置:
mysql> show variables like '%colla%';
mysql> show variables like '%charac%';