Linux下MySQL使用
1. 简介
笔者使用的系统是CentOS 7, 默认使用的是mariadb来替代MySQL, 使用上基本一致.
2. 安装
安装方法如下:
# yum install mariadb mariadb-server mariadb-devel
启动方案如下:
# systemctl start mariadb
# systemctl enable mariadb
注意:
安装完成后首次启动默认的root用户密码为空, 可以通过MySQL安全配置向导来进行安全方面的配置
--> mysql_secure_installation
3. 连接
$ mysql -u root –p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 14 Server version: 5.5.52-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
4. 命令
// 显示数据库 SHOW DATABASES; // 删除数据库 DROP DATABASE <数据库名>; // 选择数据库 USE <数据库名>; // 显示数据表, 在选择数据库之后使用 SHOW TABLES; // 显示数据表的属性 SHOW COLUMNS FROM 数据表; // 显示数据表的详细索引信息 SHOW INDEX FROM 数据表; // 输出数据库管理系统的性能及统计信息 SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern']\G;
5. 用户
MySQL用户存储在mysql 数据库中的 user 表, 直接向表中添加数据即添加MySQL用户
以下为添加用户的的实例,用户名为admin,密码为admin123,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限
MariaDB [mysql]> insert into user -> (host, user, password, select_priv, insert_priv, update_priv) -> VALUES('localhost', 'admin', PASSWORD('admin123'), 'Y', 'Y', 'Y'); Query OK, 1 row affected, 4 warnings (0.00 sec) MariaDB [mysql]> flush privileges; Query OK, 0 rows affected (0.00 sec) MariaDB [mysql]> select host, user, password from user where user = 'admin'; +-----------+-------+-------------------------------------------+ | host | user | password | +-----------+-------+-------------------------------------------+ | localhost | admin | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C | +-----------+-------+-------------------------------------------+ 1 row in set (0.00 sec) MariaDB [mysql]>
提示:
- 在添加用户时,请注意使用MySQL提供的PASSWORD()函数来对密码进行加密。
- 在 MySQL5.7 中 user 表的 password字段名已换成了authentication_string。
- 在注意需要执行flush privileges语句。 这个命令执行后会重新载入授权表
另一种添加用户的方法为通过SQL的GRANT命令
6. 操作
下面的命令创建了一个数据库并从sql脚本中向该数据库导入表
MariaDB > CREATE DATABASE test; Query OK, 1 row affected (0.00 sec) MariaDB > USE test; Database changed MariaDB [test]> source mysql.sql
7. 编码
笔者在实际使用过程中发现插入中文数据出现乱码, 于是关注一下MySQL的编码
下面的命令可以查看当前编码方式
MariaDB [(none)]> show variables like "char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
可以看到数据库和数据库服务器的默认编码为latin1, 这里需要将其改为utf8
# vi /etc/my.cnf.d/server.cnf [mysqld] character-set-server=utf8 # vi /etc/my.cnf.d/client.cnf [client] default-character-set=utf8 # vi /etc/my.cnf.d/mysql-clients.cnf [mysql] default-character-set=utf8
重启mysqld后再次查看编码
MariaDB [(none)]> show variables like "char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
8. 配置
MySQL配置文件为/etc/my.cnf, 具体配置方法参考<MY.CNF配置>
参考:
<MySQL教程>
<21分钟MySQL入门教程>
<彻底解决mysql中文乱码>