使用的是系统自带mysql软件包
1、链接数据库
启动mysql服务器:1是通过gui界面,需安装system-config-services软件包,通过图形化界面来配置;2是通过服务命令# service mysqld start启动服务,服务存放路径/etc/rc.d/init.d
启动后通过 $ ps -el | grep mysql即可看到mysql进程
$ mysql -u root mysql 链接至数据库mysql(用来管理用户和权限到database),删除user表下用户名为空的用户,并指定root密码,增加下安全性
mysql> SET password=PASSWORD(‘123456’); 或直接通过命令行$ mysqladmin -u root password 123456后者会留下命令记录,存在隐患
2、命令相关
介绍下mysqladmin命令两个用处,$ mysqladmin -u root -p version 版本信息;$ mysqladmin -u root -p varialbes 列出当前变量设置,想对变量进行修改可在/etc/my.cnf中修改,如数据文件、日志文件到存放、数据文件的增长性等,-help查看更多
扩展几个命令:
mysql:基础命令,最常用来链接数据库,也可进行导入sql文件,如$ mysql -u root -p123456 mysql < a.sql 若a中执行到是查询,返回查询结果,但不会进入mysql,-help查看更多
mysqldump:导出成sql语句到sql文件,能被重新导入,用来迁徙数据或快速备份很有用
mysqlimport:相对应的可将批量数据导入,接受一文件名和一数据库名做参数,将数据导入到数据库中与文件名(无扩展名)相同的表中,须列数相同,数据类型兼容,tab分隔
mysqlshow:列出所有数据库,或数据库中表,或数据库中表的列,或数据库中表某列属性
3、用户相关
root进入mysql创建个日常操作用户:mysql> GRANT ALL ON *.* TO user@localhost IDENTIFIED BY '123456' 意即创建个权限为ALL的、可操作任何数据库中任何表(databases.talbes配置为*.*)、用户名为user、只能从本机登录、密码为123456的用户,对应到由revoke进行剥夺权利
进行用户配置后,最好进行次权限表重载: mysql> FLUSH PRIVILEGES;
用新用户进入,创建个数据库用来测试
mysql> CREATE DATABASE test;
mysql> \u test
剩下到便是sql语句到事情了,创建表、插入数据、查询等
吐槽下sql中注释...注释符号:'-- '后面还有个空格... 空格..
还有个小小发现:
-- int(m) zerofill时m有效,数据不满m位时填充0,自动转变为unsigned int
CREATE TABLE test( testSN int NOT NULL AUTO_INCREMENT PRIMARY KEY, testCHAR varchar(10), testINT int(3) zerofill);
4、以下为编程相关,参考Linux程序设计:
MYSQL * conn_ptr; //mysql链接指针,需使用mysql_init(NULL)进行分配
conn_ptr = mysql_init(NULL); //分配新链接或重新初始化一个链接:MYSQL* mysql_init(MYSQL *)
if( !conn_ptr ) {
printf("init failed");
return EXIT_FAILURE;
}
unsigned int timeout = 7;
//mysql设置:int mysql_options(MYSQL *mysql, enum mysql_option option, const void *arg);
//函数在mysql_init和mysql_real_connect间调用,成功返回0,用来设置mysql链接属性
int iret = mysql_options(conn_ptr, MYSQL_OPT_CONNECT_TIMEOUT, (const char*)&timeout);
if( iret ) {
printf("set options error");
}
//建立链接
conn_ptr = mysql_real_connect(conn_ptr, "localhost", "user", "123456", "test", 0, NULL, 0);
if( conn_ptr ) {
printf("connect success\n");
} else {
printf("connect failed\n");
}
mysql_close(conn_ptr);
return EXIT_SUCCESS;
gcc编译下
$ gcc -omain mysqltest.c -I/usr/include/mysql -L/usr/lib64/mysql -lmysqlclient
指定下mysql头文件和库文件,编译通过,执行
$ connect success