带你了解MYSQL知识点

mysql知识点

MYSQL的依赖包

1、ncurses ncurses-devel:ncurses是字符终端下屏幕控制的基本库
2、bison:用于自动生成语法分析器程序,实际上可用于所有常见的操作系统。Bison把LALR形式的上下文无关文法描述转换为可做语法分析的C或C++程序。
3、cmake:CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。CMake 可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。

*cmake *
1、-DCMAKE INSTALL PREFIX=/usr/local/mysql #安装目录
2、-DMYSQL_UNIX_ ADDR=/usr/local/mysql/mysql.sock #指定套接字文件的存储路径
3、-DSYSCONFDIR=/etc \ #配置my.cnf的目录
4、-DSYSTEMD PID DIR=/usr/local/mysql #主服务进程所在路径
5、-DDEFAULT_CHARSET=utf8 #默认字符集
6、-DDEFAULT_COLLATION=utf8_general ci #默认编码
7、-DWITH_INNOBASE_STORAGE_ENGINE=1#启用InnoDB引擎
8、-DWITH_ARCHIVE STORAGE
ENGINE=1\ #启用ARCHIVE引擎
9、-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #启用BLACKHOLE引擎
10、-DWITH PERFSCHEMA STORAGE ENGINE=1\ #启用perfschema引擎
存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
11、-DMYSQL DATADIR=/usr/local/mysql/data #数据存储路径
12、-DWITH BOOST=boost \ #boost库是为C++语言标准库提供扩展的一些C++程序库的总称
13、-DWITH SYSTEMD=1 #-DWITH SYSTEMD=1这是MySQL 5.7原生支持Systemd的选项,如果要是用systemct1启动,就必须开启。

项目

1[root@server1 ~]# yum -y install ncurses ncurses-devel bison cmake
2、创建一个不可登录的用户
[root@server1 ~]# useradd -s /sbin/nologin mysql

3、把MySQL的软件包放进root目录里解压缩在进入mysql-5.7.20/
tar zxvf mysql-boost-5.7.20.tar.gz
cd mysql-5.7.20/

4、安装依赖包
[root@server1 mysql-5.7.20]# cmake \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
  -DSYSCONFDIR=/etc \
  -DSYSTEMD_PID_DIR=/usr/local/mysql \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_PERFSCHEMA_STORAGE_ENGIE=1 \
  -DMYSQL_DATADIR=/usr/local/mysql/data \
  -DWITH_BOOST=boost \
  -DWITH_SYSTEMD=1


[root@server1 mysql-5.7.20]# make && make install

5、 把/usr/local/mysql/修改数组属组
[root@server1 mysql-5.7.20]#   cd
[root@server1 ~]# chown -R mysql.mysql /usr/local/mysql/


[root@server1 ~]# vi /etc/my.cnf
[client]
port = 3306 #开放的端口
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server = utf8
socket = /usr/local/mysql/mysql.sock
pid-file = /usr/local/mysql/mysql.pid
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

[root@server1 ~]# chown mysql.mysql /etc/my.cnf

[root@server1 ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/mysql/lib:$PATH' >> /etc/profile
[root@server1 ~]# echo 'export PATH' >> /etc/profile
[root@server1 ~]# tail -5 /etc/profile

unset i
unset -f pathmunge
PATH=/usr/local/mysql/bin:/usr/local/mysql/mysql/lib:$PATH
export PATH
[root@server1 ~]# source /etc/profile

[root@server1 ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/mysql/mysql/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@server1 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

[root@server1 ~]# cd /usr/local/mysql/
[root@server1 mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system

[root@server1 mysql]# systemctl daemon-reload 
[root@server1 mysql]# systemctl start mysqld
[root@server1 mysql]# cd
[root@server1 ~]# netstat -anpt | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      116781/mysqld       
[root@server1 ~]# 

[root@server1 ~]# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.

[root@server1 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.20 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit
Bye

给mysql设置密码

1、给数据库设置密码
[root@server1 ~]# mysqladmin -uroot -p password '123123'
2、登录数据库
[root@server1 ~]# mysql -uroot -p123123

给mysql修改密码

用SET PASSWORD命令

登录mysql

[root@server1 ~]# mysql -uroot -p123123
mysql> set password for root@localhost = password('abc123');

用mysqladmin修改

[root@server1 ~]# mysqladmin -uroot -pabc123 password '123123'

用UPDATE直接编辑user表


[root@server1 ~]# mysql -uroot -p123123
mysql> use mysql;
mysql> update mysql.user set authentication_string = password('123456') where user='root' and host='localhost';
mysql> flush privileges;    刷新

在不知道密码的情况下 跳过密码登录mysql

vi /etc/my.cnf
[mysqld]
末尾添加
skip_name_resolve
skip_grant_tables
bind-address=0.0.0.0

[root@server1 ~]# systemctl restart mysqld

在这里插入图片描述

已标记关键词 清除标记
限时福利1:原价 129 元,最后2天仅需 69 元!后天涨价至98元 限时福利2:购课进答疑群专享柳峰(刘运强)老师答疑服务 限时福利3:购课添加助教领取价值 800 元的编程大礼包 为什么需要掌握高性能的MySQL实战? 由于互联网产品用户量大、高并发请求场景多,因此对MySQL的性能、可用性、扩展性都提出了很高的要求。使用MySQL解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。 为了让大家快速系统了解高性能MySQL核心知识全貌,我为你总结了「高性能 MySQL 知识框架图」,帮你梳理学习重点,建议收藏! 【课程设计】 课程分为四大篇章,将为你建立完整的 MySQL 知识体系,同时将重点讲解 MySQL 底层运行原理、数据库的性能调优、高并发、海量业务处理、面试解析等。 一、性能优化篇: 主要包括经典 MySQL 问题剖析、索引底层原理和事务与锁机制。通过深入理解 MySQL 的索引结构 B+Tree ,学员能够从根本上弄懂为什么有些 SQL 走索引、有些不走索引,从而彻底掌握索引的使用和优化技巧,能够避开很多实战中遇到的“坑”。 二、MySQL 8.0新特性篇: 主要包括窗口函数和通用表表达式。企业中的许多报表统计需求,如果不采用窗口函数,用普通的 SQL 语句是很难实现的。 三、高性能架构篇: 主要包括主从复制和读写分离。在企业的生产环境中,很少采用单台MySQL节点的情况,因为一旦单个节点发生故障,整个系统都不可用,后果往往不堪设想,因此掌握高可用架构的实现是非常有必要的。 四、面试篇: 程序员获得工作的第一步,就是高效的准备面试,面试篇主要从知识点回顾总结的角度出发,结合程序员面试高频MySQL问题精讲精练,帮助程序员吊打面试官,获得心仪的工作机会。
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页