Table of Contents generated with DocToc
MySQL配置文件通常在/etc/my.cnf
有些发行版Linux放在/etc/mysql/my.cnf
# 查看MySQL服务器是否启动
ps -el | grep mysqld
# 登陆MySQL
mysql -u root mysql
# 查看服务器状态
mysqladmin -u root version
# 检查服务器中的所有配置选项
mysqladmin variables
# 输出的变量中,最有用的是:datadir和have_innodb。前者告诉你MySQL在哪里存储它的数据,后者如果是YES表示MySQL支持InnoB存储引擎。MySQL支持多种引擎
# 设定root用户密码
mysqladmin -u root password newpassword
- 如果mysql连接失败,使用ps命令检查服务器是否运行
- 如果没有运行,检查mysql_safed-log,检查日志
- 检查数据库是否存在
| myisamchk | 检查和修复使用默认MYISAM表格式的任何数据表 |
|---|---|
| mysql | 几乎每个管理或用户级别的任务都可以通过mysql执行 |
| mysqladmin | 快速进行MySQL管理的主要工具 |
| mysqlbug | 生成一个发送给MySQL维护者的错误报告,生成前需要添加一些有用的其他信息 |
| mysqldump | 以SQL命令集的形式将部分或整个数据库导出到一个单独文件中,该文件可以被重新导入MySQL。基于mysqldump,可以实现远程备份 |
| mysqlimport | 批量将数据导入到一个表中 |
| mysqlshow | 快速了解MySQL安装机器组成数据库的信息 |
MySQL使用grant和revoke命令来管理用户权限
grant <privilege> on <object> to <user> [identified by user-password ] [ with grant option]
revoke <a_privilege> on <an_object> from<a_user>改变用户密码要以root用户连接到MySQL
查询用户密码:mysql>SELECT host, user, password FROM user;
为用户foo指定密码bar:mysql> UPDATE userSET password = password('bar') WHERE user = 'foo'
mysql> CREATEDATABASE rick;
| 布尔类型 | BOOL,包括TRUE、FALSE,也可以持有NULL |
|---|---|
| 字符类型 | CHAR, CHAR (N), VARCHAR (N), TINYTEXT, MEDIUMTEXT, LONGTEXT |
| 数值类型 | 整型、浮点型 |
| 时间类型 | DATE, TIME, TIMESTAMP, DATETIME, YEAR |
使用CREATE和INSERT来创建表并插入数据
- 初始化一个链接句柄
#include <mysql.h>
MYSQL *mysql_init (MYSQL *);- 实际进行连接
MYSQL *mysql_real_connect (MYSQL *connection
, const char *server_host
, const char *sql_user_name
, const char *sql_password
, const char *db_name
, unsigned int port_number
, const char *unix_socket_name
, unsigned int flags);
| 错误处理 | unsigned int mysql_errno (MYSQL *connection); char *mysql_error (MYSQL *connection); |
|---|---|
| 执行SQL语句 | int mysql_query (MYSQL *connection, const char *query) |
| 关闭连接 | int mysql_close (MYSQL *connection); |
| 设置一些选项 | int mysql_options (MYSQL *connection, enum option_to_set, const char *argument); |
// 不返回数据的SQL语句, 如UPDATE, DELETE和INSERT
my_ulonglong mysql_affected_rows (MYSQL *connection);
// 一次提取所有数据
MYSQL_RES *mysql_store_result
(MYSQL *connection);
// 得到返回的记录数目
my_ulonglong mysql_num_rows (MYSQL_RES *result);
// 从mysql_store_result的结果中提取一行
MYSQL_ROW mysql_fetch_row (MYSQL_RES *result);
// 在结果集中进行跳转,设置将会被下一个mysql_fetch_row操作返回的行
void mysql_data_seek (MYSQL_RES *result, my_ulonglong offset);
// 返回结果集中的当前位置
MYSQL_ROW_OFFSET mysql_row_tell (MYSQL_RES *result);
// 完成对数据的所有操作之后,明确调用mysql_free_result善后
void mysql_free_result (MYSQL_RES *result);
// 提取数据
// 一次提取一行
MYSQL_RES *mysql_use_resut (MYSQL *connection);
// 提供了一些关于查询结果的基本信息
unsigned int mysql_field_count
(MYSQL *connection);
// 将元数据和数据提取到MYSQL_FIELD中
MYSQL_FIELD *mysql_fetch_field (MYSQL_RES *result);上一章:7. 数据管理
下一章:9. 开发工具