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中文乱码>

posted @ 2017-06-12 17:05  北落不吉  阅读(525)  评论(0编辑  收藏  举报