首页 > 数据库 >mysql - mysql 命令行的使用

mysql - mysql 命令行的使用

时间:2024-05-09 17:14:34浏览次数:31  
标签:name -- 数据库 mysql user 命令行 使用 root

1. Mysql 管理

  • 连接数据库
-- 连接本地数据库
mysql -u root -p
-- 连接远程数据库
mysql -h 192.168.0.105 -u root -p
-- 连接远程指定数据库并设置字符集
mysql -h 192.168.0.105 -u root -p --default-character-set=utf8 test

  • 修改root密码, 直接修改配置文件
[mysql]
root=root
password=root
  • 修改配置使数据库可以远程进行访问
# mysql 配置文件
/etc/mysql/my.cnf
# mariadb 配置文件地址
/etc/mysql/mariadb.conf.d/50-server.cnf
# 修改文件内容 bind-address 127.0.0.1
bind-address 0.0.0.0

2. 用户管理

  • 创建用户并授权在本地访问指定的数据库
-- 创建用户
create user 'gogs'@'localhost' identified by '123456';
-- 用户授权
grant all privileges on gogs.* to 'gogs'@'localhost';
-- 刷新授权
flush privileges;
  • 创建用户并授权可以远程访问任何数据库
-- 新增用户并授权可以通过远程访问任何数据库
grant all privileges on *.* to 'leon'@'%' identified by 'leon' with grant option;
-- 刷新授权
flush privileges;
  • 查看当前用户
    select user();

3. 操作数据库

  • 查看数据库
    show databases;
  • 查看当前数据库
    select database();
  • 切换数据库
    use dbname;
  • 创建数据库
    create database dbname charset utf8;
  • 删除数据库
    drop database dbname;

4. 操作数据表

  • 查看当前数据库的数据表
    show tables;
  • 查看指定数据库的数据表
    show tables from dbname
  • 创建数据表
CREATE TABLE table_name (
  column_name column_attribute
) table_options;

CREATE TABLE IF NOT EXISTS table_name (
  column_name column_attribute
) table_options;
CREATE TABLE `user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` char(32) NOT  NULL,
  `sex` tinyint(3) unsigned NOT NULL DEFAULT '1',
  `created_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `uq_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 删除数据表
    DROP TABLE table_name;

  • 添加字段
    ALTER TABLE table_name ADD COLUMN column_name column_attribute [FIRST | AFTER column_name];

-- 在user表中created_at后面添加update_at字段
ALTER TABLE `user` ADD COLUMN updated_at TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP AFTER created_at;
-- 在user表的最前面添加user_id字段
ALTER TABLE `user` ADD COLUMN user_id int unsigned NOT NULL FIRST;
  • 删除字段
    ALTER TABLE table_name DROP COLUMN column_name;
-- 删除user表中的updated_at字段 
ALTER TABLE `user` DROP COLUMN `updated_at`;
  • 修改字段
    ALTER TABLE table_name MODIFY COLUMN column_name column_attribute;
-- 修改user表中的created_at字段
ALTER TABLE `user` MODIFY COLUMN `created_at` TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP(0);

5. 操作数据

  • 插入数据
INSERT INTO table_name (field1, field2, ... fieldN) VALUES (value1, value2, ...valueN), 
  (value1, value2, ...valueN)
-- 批量插入两条数据
INSERT INTO `user` (username, password, created_at) VALUES ('leon', 'secret', '2019-11-10 23:00:00'), ('leon1', 'secret1', '2019-11-10 23:00:00');
  • 查询数据
    SELECT column1, column2, ...columnN FROM table table_name [WHERE] [LIMIT] [ORDER BY]
-- 查询user表中的所有数据
SELECT * FROM `user`;
-- 查询user表中所有的username字段
SELECT username FROM `user`;
-- 查询user表中满足sex为1 且 age > 30, 按照ID降序排序的最前面10条记录
SELECT * FROM `user` WHERE sex=1 AND age>30 ORDER BY `id` DESC LIMIT 10;
-- 查询user表中 "username 为leon 且status为1" 或者 "usename 为demo且status为0" 的记录。
SELECT * FROM `user` WHERE (username='leon' AND status=1) OR (username='demo' AND status=0);
  • 修改数据
    UPDATE table_name SET field1=value1, field2=value2, fieldN=valueN [WHERE][LIMIT]
-- 将user表中username为demo的记录,将status更新为1
UPDATE `user` SET status=1 WHERE username='demo';
-- 将user表中所有stauts为1的前10条记录更新为0
UPDATE `user` SET status=0 WHERE status=1 LIMIT 10;
  • 删除数据
    DELETE FROM table_name [WHERE] [LIMIT]
-- 删除user表中status为0的记录`
DELETE FROM `user` WHERE status=0;
-- 删除user表中status为0的前10条记录
DELETE FROM `user` WHERE status=0 LIMIT 10;

6. 事务操作

事务是由一组sql语句组成的逻辑处理单元,要么全部执行成功,要么全部执行不成功。

  • BEGIN: 开启一个事务
  • COMMIT: 提交一个事务
  • ROLLBACK: 回滚一个事务
  • SET TRANSACTION: 设置事务隔离级别
BEGIN; # 开启事务
UPDATE `account` SET balance=balance-100 WHERE name='转出方';
UPDATE `account` SET balance=balance+100 WHERE name='转入方';
COMMIT; # 提交事务

7. mysqladmin 管理数据库

  • 创建数据库
    mysqladmin -u root -p create testdatabase
  • 删除数据库
    mysqladmin -u root -p drop testdatabase
  • 修改密码
    mysqladmin -u root -p password 'new password'

8. mysqldump 备份数据库

  • 备份数据库
-- 备份数据库test到文件backupfile.sql中
mysqldump -u root -p test > backupfile.sql
  • 恢复数据库
-- 创建数据库test
mysqladmin -u root -p create test
-- 读入数据库备份
mysql -u root -p test < backupfile.sql

9. 常用mysql 命令

  • help 获取帮助信息
  • status 获取服务器信息
  • use dbname 切换数据库
  • source file.sql 读取sql命令文件
  • system command 执行shell命令
  • exit 退出msyql命令行

标签:name,--,数据库,mysql,user,命令行,使用,root
From: https://www.cnblogs.com/xiaodi-js/p/18182711

相关文章

  • VMWare Workstation安装CentOS7使用桥接模式无法ping通问题
    无线网络下VMWare+CentOS7使用桥接模式无法联通网络问题_vmwarecentos桥接模式连不上网-CSDN博客编辑->虚拟网络编辑器VMnet0自动模式不行,要选择对应的网卡;可在网络连接里等方式查看网卡名称;不是管理员身份运行VMWareWorkstation默认不显示VMnet0,右下角有个啥按钮,点击一下......
  • 使用python中kivy库生成安卓APP
    kivy的安装官方推荐的方式是使用虚拟环境来进行安装和部署,关于虚拟环境的相关操作,在前面写过的一篇博客中有稍微详细一点的介绍,这里我们先给出操作步骤。假定我们已经在环境中用pip安装了virtualenv,那么我们先构建一个kivy的虚拟环境:[dechin@dechin-manjarokivy]$virtualenvk......
  • 要获取线程池中任务的返回值,可以使用submit()方法返回的Future对象。你可以通过调用Fu
    importjava.util.concurrent.ArrayBlockingQueue;importjava.util.concurrent.ThreadPoolExecutor;importjava.util.concurrent.TimeUnit;publicclassMain{publicstaticvoidmain(String[]args){//设置线程池参数intcorePoolSize=5;//......
  • 【转】[MySQL] 忘记密码的处理之 Windows 篇
    来自:阿里的通义灵码在Windows环境下,如果你忘记了MySQL的root密码,可以通过以下步骤重置:停止MySQL服务:打开“服务”管理工具(可以通过运行 services.msc 或搜索“服务”找到)。找到名为 MySQL 或 MySQL80(根据你的版本)的服务,然后右键选择“停止”。找到MySQ......
  • 【转】[MySQL] 忘记密码的处理之 Linux 篇
    来自:阿里的通义灵码如果你忘记了MySQL的root用户密码,可以按照以下步骤重置:方法1:使用 mysqld_safe 跳过授权表停止MySQL服务:bash sudoservicemysqlstop启动MySQL并跳过授权表:bash sudomysqld_safe--skip-grant-tables&登录到MyS......
  • 怎样使用 canal
    基于canal,我们可以监听MySQL表的更新事件,借以实现数据同步或者通知刷新,话不多说,进入正题。在github网页上的canal下载页,有如下几个压缩包:所以,哪个是我们需要的呢?canal.adapter是为了与其他数据系统适配而开发的工具,例如hbase,es等;canal.admin是canal的管理界面;can......
  • mysql8.0数据库添加用户和授权
    MySql8有新的安全要求,不能像之前的版本那样一次性创建用户并授权需要先创建用户,再进行授权操作1.创建新用户createuser'username'@'host'identifiedby'password';其中username为自定义的用户名;host为登录域名,host为'%'时表示为任意IP,为localhost时表示本机,或者填写指......
  • 利用标准IO函数接口实现文件拷贝,把本地磁盘的文件A中的数据完整的拷贝到另一个文本B中
    利用标准IO函数接口实现文件拷贝,把本地磁盘的文件A中的数据完整的拷贝到另一个文本B中,如果文本B不存在则创建,要求文本A的名称和文本B的名称通过命令行传递,并进行验证是否正确。/******************************************************************** author :18312615416@1......
  • Nessus安装和使用
    Nessus简介Nessus是十分强大的漏洞扫描器,内含最新的漏洞数据库,检测速度快,准确性高。下载地址:https://www.tenable.com/downloads/nessus一、安装可以windows,linux,docker等方式安装本次采用docker方式安装dockerrun-it-d--name=nessus-p8834:8834tenableofficial/n......
  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版在线打开 word 文件
    PageOffice国产版:支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)芯片架构。在OA办公、文档流转等各个Web系统中,实现最简单的打开编辑保存文件功能,调用PageOffice只需要几行代码就可以完成。后端代码在后端编写代码调用webOpen方法......