1.安装

直接docker安装,客户端使用Navicat Premium。

docker run -d --name csjmysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

2.管理mysql

连接数据库

进入shell,使用命令行进入mysql交互

docker exec -it csjmysql sh
mysql -u root -p

2.1mysql用户设置

方法1:直接在user表插入数据

use mysql;    #选择数据库
select host,user,password from user ;
insert into user (host,user,password,select_priv,insert_priv,update_priv) values ('localhost','guest',PASSWORD('123456'),'Y','Y','Y');
select host,user,password,select_priv,insert_priv,update_priv from user ;


问题:从上面的结果中guest的密码暴露了,所以要是用PASSWORD方法对密码加密
```#sql
update user set password=PASSWORD('123456') where user='guest';
```

注意:
* 在 MySQL5.7 中 user 表的 password 已换成了authentication_string。
* password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。
* 注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。

同样可以从这张表格中可以修改用户的其他权限

方法二:为数据库TEST1021添加一个有增删改查权限的用户tom,密码:tom123

 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON TEST1021.* TO 'tom'@'localhost' IDENTIFIED BY 'tom123';

3.mysql配置文件/ect/my.cnf

一般情况下,不用更改

我使用的是docker镜像,配置文件不完整,此处是菜鸟的配置文件内容:

[mysqld]
datadir=/var/lib/mysql #数据存储目录
socket=/var/lib/mysql/mysql.sock [mysql.server]
user=mysql
basedir=/var/lib [safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

3.数据库操作

use TEST1021;    #选择要使用的数据库
show databases; #查看当前有哪些数据库
show tables; #显示指定数据库的所有表
show columns from table_name; #显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
show index from table_name; #显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
show table status from database_name; #该命令将输出Mysql数据库管理系统的性能及统计信息。

3.1创建数据库

方法1:使用sql命令创建数据库

create database TEST1021;

方法2:使用shell命令 mysqladmin创建数据库

mysqladmin -u root -p create TEST1021

3.2删除数据库

方法1:使用sql命令删除

drop database TEST1021;

使用shell命令删除数据库

mysqladmin -u root -p drop TEST1021

3.3选择数据库

use TEST1021;

desc table_name; #查看表结构

3.4 修改字符集

set names 'xxx' 命令可以使 与客户端相关的character_set_client、character_set_connection、character_set_results 三者统一,减少编码转换的需要。
client (character_set_client) -----> character_set_connection -------> mysqld ------> client(character_set_results)

而 真正server端的编码字符集,character_set_server 和 character_set_database ,set names 'xxx' 根本无法修改。

更多请参考:[https://www.cnblogs.com/digdeep/p/5228199.html](https://www.cnblogs.com/digdeep/p/5228199.html)

3.5 存储引擎

Innodb引擎和MyIsam引擎的区别:

MyIsam是基于表级锁的,Innodb是基于行级锁的。

如一张表有n行记录,线程1更改第2条记录,线程2更改第1条记录。

对于MyIsam引擎的表,在执行线程1的时候将锁定整张表,线程2想修改第1条记录,是没有办法执行的,必须等待第1个线程把第2行记录更新完,释放锁之后,才能去更新第1行记录。

对于Innodb引擎的表,锁是精确到每一行的,线程1和线程2修改不同记录,可以并发执行。如果不同线程更改同一条记录,则需等待上一个线程执行完毕后,下一个线程才能执行。

引擎 事务 外键 建议操作
INNODB 支持 支持 增加、修改
MYISAM 不支持 不支持 查询

MYISAM读的性能是非常高的,因为它是基于全表去扫描的;而Innodb写入比MyIsam略快一些,Innodb支持事物的控制

mysql-1安装和数据库的管理的更多相关文章

  1. mysql的安装使用及其用户管理

    mysql的安装使用及其用户管理   一.mariadb安装 搭建yum源 [mariadb] name = MariaDB baseurl = http://mirrors.ustc.edu.cn/ ...

  2. mysql用户授权、数据库权限管理、sql语法详解

    mysql用户授权.数据库权限管理.sql语法详解 —— NiceCui 某个数据库所有的权限 ALL 后面+ PRIVILEGES SQL 某个数据库 特定的权限SQL mysql 授权语法 SQL ...

  3. mysql 免安装配置 数据库修改密码和远程IP登陆

    MySQL Windows安装包说明: 1.mysql-5.5.20-win32.msi:Windows 安装包,图形化的下一步下一步的安装. 2.mysql-5.5.20.zip,这个是window ...

  4. MySQL:MySQL的安装

    一.Linux:MySQL的源码安装 1.安装前的准备 在安装之前需要安装一下必备的包和工具 gcc/g++:MySQL5.6开始,需要使用g++进行编译. cmake:MySQL5.5开始,使用cm ...

  5. CDH集群安装配置(四)- mysql 的安装

    安装mysql,并且创建相关的表(只需要在chd1上面安装而且需要root权限)1.1 查看Centos自带mysql是否已经安装 yum list installed | grep mysql 卸载 ...

  6. 数据库介绍(MySQL安装 体系结构、基本管理)

    第1章 数据库介绍及mysql安装 1.1 数据库简介 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增.截取.更新.删除等操作. 所谓“数据库”系以一定方式 ...

  7. 【转】数据库介绍(MySQL安装 体系结构、基本管理)

    [转]数据库介绍(MySQL安装 体系结构.基本管理) 第1章 数据库介绍及mysql安装 1.1 数据库简介 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新 ...

  8. [MySQL数据库之数据库相关概念、MySQL下载安装、MySQL软件基本管理、SQL语句]

    [MySQL数据库之数据库相关概念.MySQL下载安装.MySQL软件基本管理.SQL语句] 数据库相关概念 数据库管理软件的由来 数据库管理软件:本质就是个C/S架构的套接字程序. 我们在编写任何程 ...

  9. Linux_CentOS中的MySQL 数据库的安装调试、远程管理

    官网查看最新 MySQL 安装包 https://dev.mysql.com/downloads/repo/yum/ 下载 MySQL 源的安装包 wget http://dev.mysql.com/ ...

随机推荐

  1. 《F4+2》——团队项目的原型设计与开发

      目 录 1 · 团队信息 2 · NABCD模型 3.  原型设计的工具 4 · 原型设计 5 · PSP表格 6 · 团队设计过程 7 · 原型设计心得   一 · 团 队 信 息 成 员 列 ...

  2. 关于 Flutter的Button按钮没有高度设置

    flutter 里面 RaisedButton.FloatingActionButton.FlatButton.OutlineButton 中四个button都无高度设置,如下用RaisedButto ...

  3. Java Spring-AOP中的动态代理

    2017-11-10 16:17:12 AOP中有两种代理方式,分别是JDK的动态代理和CGLib的动态代理. JDK的动态代理 Proxy 提供用于创建动态代理类和实例的静态方法,它还是由这些方法创 ...

  4. 前端框架MVVM是什么(整理)

    前端框架MVVM是什么(整理) 一.总结 一句话总结:vm层(视图模型层)通过接口从后台m层(model层)请求数据,vm层继而和v(view层)实现数据的双向绑定. 1.我大前端应该不应该做复杂的数 ...

  5. MongoDB排序异常

    com.mongodb.MongoQueryException: Query failed with error code 96 and error message 'Executor error d ...

  6. iTerm2的设置和Zsh.

    很好的说明文: https://xiaozhou.net/learn-the-command-line-iterm-and-zsh-2017-06-23.html iTerm2是Mac os用户使用的 ...

  7. bzoj1211: [HNOI2004]树的计数 prufer序列裸题

    一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi)=di ...

  8. 获取div的高度

    1.获取div的文档总高度(必须DOM操作): var scrollHeight=document.getElementById("inner").scrollHeight; // ...

  9. centos7 搭建svn服务器&客户端的访问&备份迁移

    当今用于版本控制的软件程序主要的有svn和git,其它软件咱不熟悉,今天记录下搭建svn服务器和svn客户端使用: 使用环境:虚拟机为centos7系统,svn服务器安装在centos7系统平台上,s ...

  10. 用压测模拟并发、并发处理(synchronized,redis分布式锁)

    使用工具:Apache an 测压命令: ab -n 100 -c 100 http://www.baidu.com -n代表模拟100个请求,-c代表模拟100个并发,相当于100个人同时访问 ab ...