开始我们基础的mysql学习

第一部分:补充知识

1. 昨天讲到的mysql初始化密码为空,今天又get到一种新的方法

Mysql安装后需要做的

Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:

[root@host]# mysqladmin -u root password "new_password";

现在你可以通过以下命令来连接到Mysql服务器:

[root@host]# mysql -u root -p
Enter password:*******

注意:在输入密码时,密码是不会显示了,你正确输入即可。

2. 检查mysql安装是否成功

成功安装 MySQL 后,一些基础表会表初始化,在服务器启动后,你可以通过简单的测试来验证 MySQL 是否工作正常。

使用 mysqladmin 工具来获取服务器状态:

使用 mysqladmin 命令俩检查服务器的版本, 在 linux 上该二进制文件位于 /usr/bin 目录,在 Windows 上该二进制文件位于C:\mysql\bin 。

[root@host]# mysqladmin --version

linux上该命令将输出以下结果,该结果基于你的系统信息:

mysqladmin  Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386

如果以上命令执行后未输入任何信息,说明你的Mysql未安装成功。

3.mysql 初始化 启动等动作

初始化 MySQL:

mysqld --initialize

启动 MySQL:

systemctl start mysqld

查看 MySQL 运行状态:

systemctl status mysqld

4.

Linux 系统下

首先,我们需要通过以下命令来检查MySQL服务器是否启动:

ps -ef | grep mysqld

如果MySql已经启动,以上命令将输出mysql进程列表, 如果mysql未启动,你可以使用以下命令来启动mysql服务器:

root@host# cd /usr/bin
./mysqld_safe &

如果你想关闭目前运行的 MySQL 服务器, 你可以执行以下命令:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password: ******

第二部分:

MySQL 用户设置

如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。

以下为添加用户的的实例,用户名为guest,密码为guest123,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限:

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed mysql> INSERT INTO user
(host, user, password,
select_priv, insert_priv, update_priv)
VALUES ('localhost', 'guest',
PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec) mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec) mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host | user | password |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e.

注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string

注意:password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。

注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。

如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。

你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 'Y' 即可,用户权限列表如下:

  • Select_priv
  • Insert_priv
  • Update_priv
  • Delete_priv
  • Create_priv
  • Drop_priv
  • Reload_priv
  • Shutdown_priv
  • Process_priv
  • File_priv
  • Grant_priv
  • References_priv
  • Index_priv
  • Alter_priv

另外一种添加用户的方法为通过SQL的 GRANT 命令,以下命令会给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON TUTORIALS.*
-> TO 'zara'@'localhost'
-> IDENTIFIED BY 'zara123';

以上命令会在mysql数据库中的user表创建一条用户信息记录。

注意: MySQL 的SQL语句以分号 (;) 作为结束标识。


/etc/my.cnf 文件配置

一般情况下,你不需要修改该配置文件,该文件默认配置如下:

[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

在配置文件中,你可以指定不同的错误日志文件存放的目录,一般你不需要改动这些配置。


管理MySQL的命令

以下列出了使用Mysql数据库过程中常用的命令:

  • USE 数据库名 :
    选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。

    mysql> use RUNOOB;
    Database changed
  • SHOW DATABASES: 
    列出 MySQL 数据库管理系统的数据库列表。

    mysql> SHOW DATABASES;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | RUNOOB |
    | cdcol |
    | mysql |
    | onethink |
    | performance_schema |
    | phpmyadmin |
    | test |
    | wecenter |
    | wordpress |
    +--------------------+
    10 rows in set (0.02 sec)
  • SHOW TABLES:
    显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。

    mysql> use RUNOOB;
    Database changed
    mysql> SHOW TABLES;
    +------------------+
    | Tables_in_runoob |
    +------------------+
    | employee_tbl |
    | runoob_tbl |
    | tcount_tbl |
    +------------------+
    3 rows in set (0.00 sec)
  • SHOW COLUMNS FROM 数据表:
    显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

    mysql> SHOW COLUMNS FROM runoob_tbl;
    +-----------------+--------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-----------------+--------------+------+-----+---------+-------+
    | runoob_id | int(11) | NO | PRI | NULL | |
    | runoob_title | varchar(255) | YES | | NULL | |
    | runoob_author | varchar(255) | YES | | NULL | |
    | submission_date | date | YES | | NULL | |
    +-----------------+--------------+------+-----+---------+-------+
    4 rows in set (0.01 sec)
  • SHOW INDEX FROM 数据表:
    显示数据表的详细索引信息,包括PRIMARY KEY(主键)。

    mysql> SHOW INDEX FROM runoob_tbl;
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | runoob_tbl | 0 | PRIMARY | 1 | runoob_id | A | 2 | NULL | NULL | | BTREE | | |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    1 row in set (0.00 sec)
  • SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] \G: 
    该命令将输出Mysql数据库管理系统的性能及统计信息。

    mysql> SHOW TABLE STATUS  FROM RUNOOB;   # 显示数据库 RUNOOB 中所有表的信息
    
    mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%';     # 表名以runoob开头的表的信息
    mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'\G; # 加上 \G,查询结果按列打印

下面是练习截图

查看mysql表中有哪些字段

desc tablename

报错了,查资料 error 1364

详解源原文地址:https://blog.csdn.net/zyc2011/article/details/73088270

在mysql的user表中增加连接用户帐号:

这里不要直接使用INSERT语句添加user记录,使用INSERT可能出现:

ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a defaultvalue错误。

那么就不用insert了,换种方法:

GRANT USAGE ON *.* TO'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

“username”替换为将要授权的用户名,比如clientusr;

“password”替换为clientusr设置的密码;

locaohost可以改为%,方便你从别的IP登录。

然后对你建的用户进行授权

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROPON tablename.*  TO 'username'@'localhost' IDENTIFIED BY 'password';

本语句中的权限根据实际需要确定:

"tablename"替换为授权访问的数据表table名

"username"是步骤2授权用户名

"password"是步骤2授权用户的设置密码

这样就为该用户授予了对某数据表的SELECT, INSERT, UPDATE, DELETE, CAREATE, DROP权限。

4、生效授权,创建完毕

FLUSH PRIVILEGES;

再继续试验

继续报错,好吧mysql8 要坑死我了

继续查阅资料

mysql 8.0.11 中使用 grant ... identified by 时 error 1064 near 'identified by '密码'' at line 1

2018年07月04日 17:29:12 Allan-li 阅读数:2980 标签: mysql 更多

个人分类: 使用操作
 

1 问题:

当使用 grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码'; 时会出现"......near 'identified by '密码'' at line 1"这个错误

2 原因:

因为新版的的mysql版本已经将创建账户和赋予权限的方式分开了

3解决办法:

创建账户:create user '用户名'@'访问主机' identified by '密码';

赋予权限:grant 权限列表 on 数据库 to '用户名'@'访问主机' ;(修改权限时在后面加with grant option)

好吧,继续测试

成功了!

夜深了,睡吧!年轻人


mysql学习(1)的更多相关文章

  1. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  2. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  3. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  4. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  5. 我的MYSQL学习心得(五) 运算符

    我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  6. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  7. 我的MYSQL学习心得(七) 查询

    我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  8. 我的MYSQL学习心得(八) 插入 更新 删除

    我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...

  9. 我的MYSQL学习心得(九) 索引

    我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  10. 我的MYSQL学习心得(十) 自定义存储过程和函数

    我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心 ...

随机推荐

  1. 开源作业调度框架 - Quartz.NET - ASP.NET部署

    经过这次使用实践,感觉Quartz.NET使用起来方便快捷 但是在发布部署时我们会遇到一个问题 那就是当Web应用程序经常没有按照预计的时间去执行. 那问题出在哪里了呢? 根据以往的经验很容易就可以找 ...

  2. MySQL5.7通过压缩包方式安装与配置

    首先下载MySQL5.7的压缩包:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 1.解压缩到目标文件夹,解压后有许多文件,介绍一下用 ...

  3. 2019 Web开发学习路线图

    以下 Web 开发人员学习路线图是来自 Github developer-roadmap 项目,目前已经有繁体版翻译 developer-roadmap-chinese. 主要有三个方向,分别为前端开 ...

  4. js判断360浏览器 兼容模式IE版本

    var ms_ie = false; var ua = window.navigator.userAgent.toLowerCase(); var old_ie = ua.indexOf('MSIE' ...

  5. 如何永久激活(破解) IntelliJ IDEA 2018.1.3

    版权声明:本文为博主原创文章,转载不需要博主同意,只需贴上原文链接即可. https://blog.csdn.net/zhige_me/article/details/80369336 1.去官网下载 ...

  6. luogu P3690 【模板】Link Cut Tree (动态树)

    嘟嘟嘟 LCT竟然看了整整一天,但好歹是看懂了. 教程这里不写,强烈推荐 闪狐大佬的博客 . 但是还是有几句想说的. 1.尽管LCT和splay很像,但是有一些细节还是不一样的.首先是rotate,我 ...

  7. php 导出导入excel

    首先需要去官网https://github.com/PHPOffice/PHPExcel/下载PHPExcel,下载后只需要Classes目录下的文件即可. 链接: https://pan.baidu ...

  8. 使用 rem 作为单位使页面自适应设备宽度

    一.新建 rem.js 文件,代码如下: export default function () { document.documentElement.style.fontSize = document ...

  9. mysql linux 安装卸载

    mysql安装包官网https://dev.mysql.com/downloads/mysql/5.7.html#downloads wget https://dev.mysql.com/get/Do ...

  10. jenkins slave 安装服务与卸载

    查看windows 服务 cmd 运行下图用我已经安装的jnlp服务展示效果 : services.msc 关于这个服务名称怎么来的: 我的 工作台路径:如下: 进入jenkins slave 下载j ...