Linux下mysql基础

本文深入探讨了MySQL数据库的连接与管理方法,包括GUI界面配置、命令行操作、用户权限设置及编程中MySQL的集成应用。同时,介绍了如何通过编程实现与MySQL数据库的交互,包括链接、查询、数据导入导出等核心功能。

使用的是系统自带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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值