背景

作为一个前端,偶尔搞下后端

要熟悉 SQL 操作,但是一段时间不用

会大部分忘记,之后又要重新查资料

所以自己整理一遍经常用到的 SQL 操作

和使用过程遇到的问题,方便自己快速查阅

一、安装 mysql

1、检查系统上是否有其他 mysql 版本并删除

yum list installed | grep mysql

yum -y remove mysql-libs.x86_64 mysql.x86_64 mysql-server.x86_64

2、下载、安装

CentOS7 默认数据库是 mariadb ,所以我们要先下载 mysql 的 repo 源

进入要安装的目录

cd /usr/local/src/

下载

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

安装 mysql 软件包

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

安装 mysql

yum -y install mysql-server

二、设置开机启动

查看系统服务配置列表

chkconfig --list

从系统服务配置列表里面选出 mysql 相关

systemctl list-unit-files | grep mysql

开机启动

systemctl enable mysqld

三、设置 root 账号密码

启动 mysql

systemctl start mysqld

初次安装时候使用该命令查询默认的 mysql root 密码

grep "password" /var/log/mysqld.log

mysql 安全安装(用于生产环境 做一些常规化安全设置)

mysql_secure_installation

配置完成后,使用上面查到的密码登录 mysql

mysql -h localhost -u root -p

-h 表示主机 -u 表示用户名 -p 表示密码

-h 默认是 localhost ,所以可以不写,最后一般这么写

mysql -uroot -p

四、设置远程登录账号

grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"

grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;

刷新权限

flush privileges;

五、mysql 常规操作

登录成功后可以查看 mysql 数据库信息

注意:以下操作都是在登录 mysql 下进行

常用操作

1、库操作

创建数据库 testdb

create database testdb;

列出所有数据库

show databases;

删除数据库

drop database '数据库名'

选择 mysql 数据库

use mysql;

2、表操作

创建表

create table student (id int, name varchar(20));

删除数据表

drop table '数据表名'

显示数据表结构

describe 表名

列出当前选中的数据库下的所有表

show tables;

在 user 表中选中 user,host,password 字段

select user,host,password from user;

六、添加 mysql 用户

注意:以下操作都是在登录 mysql 下进行

创建了一个名为 test,密码为 123456 的 mysql 用户

localhost 限制了该用户只能在本地访问

若要在任何一台电脑上都能访问,可以把 localhost 改为 '%' ,表示任何主机地址

create user 'test'@'localhost' identified by '123456';

授予数据库的操作权限:

grant all privileges on *.* to 'test'@'localhost'

合起来写,创建并授权

grant all privileges on *.* to 'test'@'localhost' identified by '123456'

删除用户:

drop user 'test'@'localhost';

修改权限:

revoke all privileges on *.* from 'test'@'localhost';

查询用户授权:

show grants for 'test'@'localhost';

最后一定要刷新

flush privileges;

七、使用 mysql 的一些坑

1、阿里云数据库

阿里云数据库默认编码是 latin1,latin1 虽然向下兼容 utf8,但我们尽量换成 utf8 编码,否则可能会出现中文乱码

出现乱码时候可以执行一下指令查看

show variables like 'character%';

show variables like 'collation_%';

上面都是 latin1 的编码

现在我们把编码格式修改为 utf8

修改 vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0
character-set-server=utf8
collation-server=utf8_general_ci
#performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION [mysql]
default-character-set = utf8 [mysql.server]
default-character-set = utf8 [mysqld_safe]
default-character-set = utf8
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid [client]
default-character-set = utf8

修改完成后重启 mysql

service mysqld restart

继续执行下面的命令查看

show variables like 'character%';

show variables like 'collation_%';

注意点:

1. 要保证数据库中存的数据与数据库编码一致,即数据编码与 character_set_database 一致

2. 要保证通讯的字符集与数据库的字符集一致
即 character_set_client, character_set_connection 与character_set_database 一致 3. 要保证 SELECT 的返回与程序的编码一致,即 character_set_results 与程序编码一致 4. 要保证程序编码与浏览器、终端编码一致 5. 简单一点的话,就将各个字符集都设为一致的,写入mysql的配置文件

2、can not connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'(100)

使用 mysql -uroot -p 登录不了 mysql

解决:

a、查看 mysql 状态

mysql status

b、查看 mysql.sock 位置并验证

查找 mysql.sock 位置

find / -name mysql.sock

验证通过应该就可以进入 mysql 了

mysql -u root -p -S 上面找到的 mysql.sock 位置

c、验证 mysql.sock 文件权限和用户是否正确

如果是权限问题,修改权限

chown -R mysql:mysql 上面找到的 mysql.sock 位置

启动成功,就没问题了

mysqld start

d、永久解决问题

修改 /etc/my.cnf

添加以下内容到 /etc/my.cnf

[client]
socket = 上面找到的 mysql.sock 位置
[mysqld]
socket = 上面找到的 mysql.sock 位置

八、其他操作

1、查看mysql安装路径

ps -ef | grep mysql

查看文件安装路径

whereis mysql



/usr/lib64/mysql

查看运行文件路径

which mysql



usr/bin/mysql

--datadir 参数表示数据库文件的存放路径

/var/lib/mysql

MySQL常规操作以及问题的更多相关文章

  1. MySQL常规操作

    数据库的相关概念 一.数据库的好处 1.可以持久化数据到本地 2.结构化查询 二.数据库的常见概念 ★ 1.DB:数据库,存储数据的容器 2.DBMS:数据库管理系统,又称为数据库软件或数据库产品,用 ...

  2. mysql服务器的常规操作

    mysql服务器的常规操作 导读 MySQL是一个小型关系数据库管理系统,目前被广泛的应用在Internet上的中小型网站中,体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,使得许多中小型网站 ...

  3. 数据库mysql的常规操作

    1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进 ...

  4. postgresql 常规操作以及检查备份

    一.建表时,复制源表的信息test=# test=# \d test.t1 Table "test.t1" Column | Type | Collation | Nullable ...

  5. postgres 常规操作杂记

    分布式:1.扩容不方便(数据重分布)2.分布键变更很麻烦3.分布键选择(架构设计)谨慎4.跨库join性能差5.分布式事务性能差6.sql限制多,功能确实多7.应用改造成本巨大8.全局一致性时间点恢复 ...

  6. EFCore常规操作生成的SQL语句一览

    前言 EFCore的性能先不说,便捷性绝对是.Net Core平台下的ORM中最好用的,主要血统还百分百纯正. EFCore说到底还是对数据库进行操作,无论你是写Lamda还是Linq最后总归都是要生 ...

  7. MySQL误操作后如何快速恢复数据

    基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...

  8. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  9. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

随机推荐

  1. Python--模块之sys模块、logging模块、序列化json模块、序列化pickle模块

    sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit() sys.path 返回模块的搜索路径,初始化时使用PYTHONPA ...

  2. 04-树5 Root of AVL Tree(25 分)

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...

  3. cf round599 CDE

    C:结论题:设n=k*p1+r=a*p2+b,只要n有两个及以上质因子,那么必然可以用第一个质因子表示出第二个质因子,所以答案是1 反之显然是其最小质因子 /* 1 2 3 4 1 3 2 4 n的所 ...

  4. windows10下安装Mysql 5.6(zip格式安装包)

    5.6的安装包是一个zip文件,里面包含了data(有表空间文件和日志文件),bin等文件夹.不同于以往的只需要双击安装.msi就行了.因此,在此记录下安装包是.zip时的安装步骤. 1下载 进htt ...

  5. [CSP-S模拟测试]:金(king)(高精度+模拟)

    题目传送门(内部题36) 输入格式 第一行一个整数$T$,表示数据组数. 接下来$T$行,每行两个空格隔开的整数$n,m$. 输出格式 对于每组数据,输出一行$"Yes"$或$&q ...

  6. linux c开发项目过程总结

    软件工程有瀑布模型,迭代模型等. 使用linux c语言来开发项目,当然也是遵循这样的思想,先要问题定义-->需求分析--->原型设计---->编码及单元测试--->集成测试及 ...

  7. Redis入门很简单之三【常见参数配置】

    Redis入门很简单之三[常见参数配置] 博客分类: NoSQL/Redis/MongoDB redisnosql缓存中间件memcached  Redis的一下常见设置都是通过对redis.conf ...

  8. Node.js 开发技能图谱

    # Node.js 开发技能图谱 ## Node.js 语言环境搭建 - Node.js 安装(3m大法:nvm.npm.nrm)- Node.js 命令- Node.js开发工具(推荐vscode) ...

  9. 大数据学习笔记之Hadoop(一):Hadoop入门

    文章目录 大数据概论 一.大数据概念 二.大数据的特点 三.大数据能干啥? 四.大数据发展前景 五.企业数据部的业务流程分析 六.企业数据部的一般组织结构 Hadoop(入门) 一 从Hadoop框架 ...

  10. select change()

    $(".learnStageId").change(function(){ var id = $(this).val(); $(".gradeId").find ...