linux 下对 mysql 的操作(书到用时方恨少)

48 篇文章 1 订阅
7 篇文章 0 订阅

今天在项目中要把加密之后的密文存入数据库,所以临时简洁的研究了一下linux下对mysql的操作。

1.登录数据库用到的命令:

$ mysql -u root -p

输入之后会提示对应用户root的密码,如图:

当输入密码时总是提示如下:

ERROR1698(28000):Access denied for user root@localhost

解决方法如下链接:

https://www.cnblogs.com/cpl9412290130/p/9583868.html

这位大佬已经解决的问题正是今天我遇到的问题,在此向前辈致敬!

2.建立一个名为zonghzha的用户:

CREATE USER 'zonghzha'@'localhost' IDENTIFIED BY '123456a';

一旦用户被创建后,包括加密的密码、权限和资源限制在内的所有帐号细节都会被存储在一个名为user的表中,这个表则存在于mysql这个特殊的数据库里。

3.首先用如下指令查看用户是否已经创建成功:

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

显示如下:

一个新建的MySQL用户没有任何访问权限,这就意味着你不能在MySQL数据库中进行任何操作。你得赋予用户必要的权限。

4.新创建一个数据库

CREATE DATABASE IF NOT EXISTS license;

5.我们想让用户'zonghzha'@'localhost'仅仅具有对license数据库的所有操作权限,命令如下:

grant all privileges on license. * to 'zonghzha'@'localhost';
flush privileges;

截图如下:

 

 

 

6.c语言中创建一个表的语句:

mysql_query(&connect, "CREATE TABLE IF NOT EXISTS points(id INT UNSIGNED AUTO_INCREMENT, code VARCHAR(300) NOT NULL, date TIMESTAMP NOT NULL, primary key (id))ENGINE=InnoDB DEFAULT CHARSET=utf8")

其中id为此表的主键,AUTO_INCREMNET表示每插入一条语句,id的值都会自增长。此处注意,在一个表中只有主键的值可以自增长。所以只是声明了id INT AUTO_INCREMNET并不能自动增长,还需下后面的一句 primary key (id)

date TIMESTAMP NOT NULL,意为date声明为时间戳格式,并且插入式不能为空。

此时执行如下命令,去查看标的结构:

desc points

表的结构显示如下:

在下图中可以看到自动增长之后的id和自动填充的时间:

如果要在数据库中记录此条数据插入的时间,那么要用到current_timestamp()。此处注意,只有前面创建表时被声明为TIMESTAMP的元素才可以用current_timestamp()。代码如下:

sprintf(sql_cmd, "INSERT INTO points (code, date)VALUES(\"%s\", current_timestamp())", code);
mysql_query(&connect, sql_cmd)

7.删除points表中的数据:

mysql> DELETE FROM points;

以上语句会删除points表中的所有数据。

8.在mysql的交互窗口删除一个表的命令如下:

drop table if exists runoob_tbl

截图看反馈:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值