开源数据库MySQL 8.0 OCP认证精讲视频、环境和题库 之三 选项、变量

news2025/2/23 3:30:33

选项文件:默认/etc/my.cnf
可以通过以下选项,指定选项文件:
-defaults-file:指定选项文件
例如:mysql--defaults-file=/etc/my.cnf
-no-defaults:不读任何选项文件,所有选项需要在命令行中指定
-defaults-extra-file:除了默认的选项文件之外,读该选项文件
my_print_defaults:列出所有被读到的选项文件中的选项组
my_print_defaults mysqld
mysql--print-default smysql

隐藏登录信息,实现免密码登录


.mylogin.cn文件:二进制,加密,位于当前操作系统用户的HOME目录

选项文件:默认/etc/my.cnf
可以通过以下选项,指定选项文件:
-defaults-file:指定选项文件
例如:mysql--defaults-file=/etc/my.cnf
-no-defaults:不读任何选项文件,所有选项需要在命令行中指定
-defaults-extra-file:除了默认的选项文件之外,读该选项文件
my_print_defaults:列出所有被读到的选项文件中的选项组
my_print_defaults mysqld
mysql--print-default smysql


隐藏登录信息,实现免密码登录

.mylogin.cn文件:二进制,加密,位于当前操作系统用户的HOME目录

[root@student ~]# mysql_config_editor  --help
mysql_config_editor  Ver 8.0.13 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2012, 2018, 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.

MySQL Configuration Utility.
Usage: mysql_config_editor [program options] [command [command options]]
  -#, --debug[=#]     This is a non-debug version. Catch this and exit.
  -?, --help          Display this help and exit.
  -v, --verbose       Write more information.
  -V, --version       Output version information and exit.

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
verbose                           FALSE

Where command can be any one of the following :
       set [command options]     Sets user name/password/host name/socket/port
                                 for a given login path (section).
       remove [command options]  Remove a login path from the login file.
       print [command options]   Print all the options for a specified
                                 login path.
       reset [command options]   Deletes the contents of the login file.
       help                      Display this usage/help information.

[root@student ~]# mysql_config_editor  set --login_path=client --user=root --password --host=localhost --port=3306
Enter password: 
会在当前用户HOME文件夹下创建 一个隐藏二进制文件

 [root@student ~]# ls -al .mylogin.cnf
-rw------- 1 root root 156 Oct 12 21:37 .mylogin.cnf
[root@student ~]# 

[root@student ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, 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> 
 


system variables 
选项与变量
相同点:可以在命令行指定,在选项文件中指定
不同点:
   选项:
        任何可执行文件都有选项,客户端,mysqld
        有些选项有值 ,有些选项没有值
        在命令的一次执行范围内,选项不可改变量
   变量:
        用在服务器端,用来 对服务器进行设置
        所有变量都有值,一开始都有默认值
        变量可以动态修改
        
变量的作用范围
    global:变量针对整个mysql生效
    session :只针对当前会话
mysql> show variables; 列出所有的变量;
mysql>     show variables like '变量名';
mysql> show  variables like '%变量%';
mysql> select @@global.autocommit;   查看全局变量autocommit; 
mysql>select @@session.autocommit;         查看会话级变量autocommit;

mysql> show global variables like 'autocommit'; 
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+
1 row in set (0.00 sec)

  
变量的设置:set 命令
set  global 变量=变量值 
set  session 变量=变量值 
 
 变量的设置:
 1、global变量 : 比如 max_connections
     set global  max_connections=1000;在一个会话中修改后,其它会话中可以看到结果 ;
     set max_connections=1000;出错;
     set session max_connections=1000; 出错;
     
 2、有些变量既有golbal作用,又有session作用范围,比如autocommit,sql_mode,wait_timeout
    set global autocommit=0 ;修改结果在新会话中生效,在现存的会话中不生效
    select @@global.autocommit ,@@session.autocommit;
    set session wait_timeout=30000;修改结果仅在当前会话中生效;
3、有些变量只有sessoin作用范围,比如    

变量的持久性
    通过set命令修改的变量仅对mysqld的本次启动有效;
    解决方法
    1、把变量放在选项文件中
    2、执行命令set prersist 变量=变量值 ,修改结果被写入文件/var/lib/mysql/mysqld-auto.cnf或
       datadir目录中,其格式为json;    
       仅针对global变量
       
 mysql> show  variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> set global  max_connections=1000;
mysql> 
mysql> show  variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1000  |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> 
mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+
1 row in set (0.00 sec)

mysql> set global autocommit=0;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+
1 row in set (0.00 sec)


mysql> set global autocommit=0;  在新会话中生效;
mysql> exit;
[root@student ~]# mysql

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | OFF   |
+---------------+-------+
1 row in set (0.00 sec)
mysql> 

会话级变量的设置
    mysql> set session wait_timeout=2009;  只有在当前会话才生效;
    Query OK, 0 rows affected (0.00 sec)

    mysql> show variables like 'wait_timeout';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | wait_timeout  | 2009  |
    +---------------+-------+
    1 row in set (0.00 sec)

    mysql> 

mysqladmin工具:用来管理mysqld服务,格式:
    MySQLadmin 选项  命令
    # mysqladmin --help;
    [root@student ~]# mysqladmin -uroot -pOra_123  status
    [root@student ~]# mysqladmin -uroot -pOra_123  ping
    [root@student ~]# mysqladmin -uroot -pOra_123  shutdown
    [root@student ~]# mysqladmin -uroot -pOra_123  version
    mysql> select version();
   [root@student ~]# mysqladmin -uroot -pOra_123   password
   [root@student ~]# mysqladmin -uroot -pOra_123   create   db_1
   [root@student ~]# mysqladmin -uroot -pOra_123   drop     db-1

mysqld进程:多线程

数据文件:被划分为大小相同的page,page大小通过变量innod


    mysqld服务实现了三层功能:
    1、connection层
        启动connection线程
        提供通信协议
        对用户的登录进行验证
    2、SQL层
       分析、检查SQL的语法格式,把SQL转化为二进制代码
       autthorization:检查当前用户对表是否有相太的权限
       优化:针对SQL产生最佳的执行计划。
       执行SQL。
       产生日志,写入日志缓冲区。
    3、storage层
        实现数据的存储
        存储引擎:
            数据在存储介质中如何存储
            当用户访问数据时,数据如何从介质读入内存
            数据在内存中如何被访问
            内存中被修改的数据如何被写的内存


通信协议:
    TCP/IP:        不同操作系统,本地连接,远程连接
    socket:        UNIX/Linux本地连接
    shared memory: windows系统,本地连接 
    named pipe   :windows系统,本地连接 

登录有关的选项:
    -u 指定用户名,默认为root用户
    -h 指定数据库服务器的IP地址,默认为localhost
    -p 指定password
    -P 指定服务器的PORT,默认为3306
# mysql -pOra_123
    
ip地址:
    1、localhost:
        本次使用socket通讯,可以进一步指定socket文件
        mysql> status;
        --------------
        mysql  Ver 8.0.13 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)

        Connection id:        16
        Current database:    
        Current user:        root@localhost
        SSL:            Not in use
        Current pager:        stdout
        Using outfile:        ''
        Using delimiter:    ;
        Server version:        8.0.13 MySQL Community Server - GPL
        Protocol version:    10
        Connection:        Localhost via UNIX socket
        
        mysql> show variables like 'socket';
        +---------------+------------------------+
        | Variable_name | Value                  |
        +---------------+------------------------+
        | socket        | /data/mysql/mysql.sock |
        +---------------+------------------------+
        1 row in set (0.00 sec)

        # mysql -pOra_123  -S  /data/mysql/mysql.sock    #指定用socket协议
 
        #mysql -pOra_123 --protocol=tcp                  #指定用tcp协议
        mysql> status
        --------------
        mysql  Ver 8.0.13 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)
         ...
        Server version:        8.0.13 MySQL Community Server - GPL
        Protocol version:    10
        Connection:        localhost via TCP/IP
        ...
    
    2、127.0.0.1
       本次登录使用tcp通信,可以进一步指定服务器的端口。
       端口的查看:
       mysql> show variables like 'port';  
       # mysql -uroot -pOra_123 -h127.0.0.1 -P 3306
        mysql> status
        --------------
        ...
        Connection:        127.0.0.1 via TCP/IP
        ...
        TCP port:        3306
        ...
    3、有效的IP
       在mysql中执行status命令验证连接情况
       用户帐号:用户名称@ip地址:
       # mysql -uroot -pOra_123 -h 192.168.11.222
        mysql: [Warning] Using a password on the command line interface can be insecure.
        ERROR 1130 (HY000): Host 'student' is not allowed to connect to this MySQL server
    
    
        mysql> select user,host from user;
        +------------------+-----------+
        | user             | host      |
        +------------------+-----------+
        | mysql.infoschema | localhost |
        | mysql.session    | localhost |
        | mysql.sys        | localhost |
        | root             | localhost |
        +------------------+-----------+
        4 rows in set (0.00 sec)

rpm格式安装mysqld服务的启动/关闭:root用户
systemctl start  mysqld 
systemctl status mysqld 
systemctl stop   mysqld 
如何用普通用户启用和关闭mysql
1、在操作系统中对mysql进行解决
   cat /etc/passwd |grep mysql
   systemctl stop   mysqld 
   usermod -d /home/mysql -s /bin/bash mysql
   mkdir /home/mysql
   chown mysql:mysql /home/mysql
   
   password mysql    #输入密码
2、以mysql用户登录操作系统
    su  - mysql
    启动mysqld
    mysqld --defaults-file=/etc/my.cnf &
    mysql用户在mysql数据库要创建
    mysqladmin -umysql -pmysql ping
    mysqladmin -umysql -pmysql shutdown
    
二进制安装 
systemctl start   mysql
systemctl status  mysql
systemctl stop    mysql

rpm格式mysql的弊端
1、处理安全考虑,生产系统不允许安装rpm格式
2、 mysql服务的启动,关闭需要用root用户
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1088738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Vue+Ts+Vite项目中如何配置别名指向不同的目录并引用

在VueTsVite项目中如何配置别名指向不同的目录并引用 vite.config.ts配置如下:tsconfig.json中需要配置baseUrl和paths,如下所示:项目中直接引入案例: vite.config.ts配置如下: import { defineConfig, AliasOptions } from vite…

FPGA project : flash_secter_erase

flash的指定扇区擦除实验。 先发写指令,再进入写锁存周期等待500ns,进入写扇区擦除指令,然后写扇区地址,页地址,字节地址。即可完成扇区擦除。 模块框图: 时序图: 代码: module…

后厂村路灯:苹果签名是什么? 苹果签名有什么作用?苹果签名能做什么?原理是什么?有哪些方式?

苹果签名是苹果公司为了保证iOS设备安全性而推出的一种机制。 当ios APP辛苦开发完成后,通常去苹果商店进行上架,用户才能下载,不能上架或者上架前测试的话,进行签名使之可以下载。简单说,苹果的ios签名是一种允许苹果…

香港服务器选纯国际线路上网稳定吗?

​  关于香港服务器的线路,我们平时接触较多的分三大类,即纯国际线路、回国专线和香港本地线路。三者价格上存有差距,原因体现在线路和网络质量上,当然这些会关系到服务器的速度和稳定性。譬如,有些用户在选择了纯国…

部署zabbix代理服务器、部署zabbix高可用集群

目录 部署zabbix代理服务器 1、环境设置 2、设置 zabbix 的下载源,安装 zabbix-proxy 3、配置Mariadb yum源,并下载marisdb数据库 4.、启动数据库,并初始化数据库 5、登录数据库,创建数据库并指定字符集,并进行…

怎样制作一个展会场馆预约小程序

随着互联网的发展,展会行业也逐渐向数字化转型。展会场馆预约小程序作为展会线下向线上的延伸,能够让参展商和观众随时随地进行预约,大大提升了客户的体验。那么,如何制作一个展会场馆预约小程序呢?下面就以乔拓云平台…

迷你Ceph集群搭建(超低配设备)

我的博客原文链接:https://blog.gcc.ac.cn/post/2023/%E8%BF%B7%E4%BD%A0ceph%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA/ 环境 机器列表: IP角色说明10.0.0.15osdARMv7,512M内存,32G存储,百兆网口10.0.0.16clientARM64…

分享关于msvcp110dll丢失的5种不同解决方法

今天我要和大家分享的主题是:msvcp110dll丢失的5种不同解决方法。我们都知道,在电脑使用过程中,经常会遇到一些棘手的问题,比如msvcp110.dll丢失。那么,这个文件丢失到底是什么意思呢?接下来,我…

Python数据挖掘项目实战——自动售货机销售数据分析

摘要:本案例将主要结合自动售货机的实际情况,对销售的历史数据进行处理,利用pyecharts库、Matplotlib库进行可视化分析,并对未来4周商品的销售额进行预测,从而为企业制定相应的自动售货机市场需求分析及销售建议提供参…

国内常用源开发环境换源(flutter换源,python换源,Linux换源,npm换源)

flutter换源 使用环境变量:PUB_HOSTED_URL FLUTTER_STORAGE_BASE_URL, upgrade出问题时可能会提示设置FLUTTER_GIT_URL变量。 flutter中国 PUB_HOSTED_URLhttps://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URLhttps://storage.flutter-io.cn FLUTTER_GIT_URLhtt…

高并发下的服务容错

在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络 原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会 出现网络延迟&#xf…

C# OCR服务测试程序

效果 项目 代码 using NLog; using RestSharp; using RestSharp.Contrib; using System; using System.Drawing; using System.IO; using System.Net; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms;namespace OCRSe…

解决react样式组合时css module动态样式失效的问题

现象&#xff1a; <button disabled{invalid} className{ "btn btn-primary btn-lg" invalid ? styles.btnDisabled : "" } > 注册 </button> 上面采用字符串拼接的方式&#xff0c;组合class&#xff0c;但是css module的动态样式style…

docker部署-Linux

Docker yum源部署 YUM源可以使用官方YUM源、清华大学开源镜像站配置YUM源&#xff0c;也可以使用阿里云开源镜像站提供的YUM源&#xff0c;建议选择使用阿里云开源镜像站提供的YUM源&#xff0c;原因速度快。 获取阿里云开源镜像站YUM源文件 地址&#xff1a;https://develope…

探索RFID技术在新能源电池中的应用及其潜在优势

探索RFID技术在新能源电池中的应用及其潜在优势 随着科技的发展&#xff0c;新能源电池已成为现代社会能源供应的重要一环。而在新能源电池的生产、运输、存储和回收等各个环节中&#xff0c;RFID&#xff08;无线射频识别&#xff09;技术的应用&#xff0c;无疑为提高效率、…

二叉树查找值为x的节点

递归的思路&#xff1a;先判断是不是空树如果的空就返回NULL; 在判断节点的值是否是x,如果是的话就返回这个节点 不是的话就继续递归 BTNode* BinaryTreeFind(BTNode* root, int x) {if (root NULL){return NULL;}if (root->val x){return root;}BTNode* ret NULL;ret B…

css 如何让元素内部文本和外部文本 一块显示省略号

实际上还是有这样的需求的 <div class"container"><span>啊啊啊啊啊啊啊啊</span>你好啊撒撒啊撒撒撒撒啊撒撒撒撒撒说</div>还是有这样的需求的哦。 div.container {width: 200px;white-space: nowrap;text-overflow: ellipsis;overflow:…

Python学习基础笔记六十六——对象的方法

我们已经学习到的对象类型&#xff1a; 整数类型的对象 字符串类型的对象 列表类型的对象 元组类型的对象 对象通常都有属于自己的方法&#xff08;method&#xff09; 调用对象的方法和调用函数差不多&#xff0c;只要在前面加上所属对象的一个点。 var1 [1, 2, 3,4, 5,…

centos7安装db2 version11.1

centos7安装DB2 操作系统 linux centos7 DB2版本 11.1 1、取包 IBM MRS Tool 将安装包放在 /home/software 下面 mkdir -p /home/software cd /home/software wget https://iwm.dhe.ibm.com/sdfdl/v2/regs2/db2pmopn/Express-C/DB2ExpressC11/Xa.2/Xb.aA_60_-i7wWKFMFpbW1xl1…

08 | Jackson 注解在实体里面如何应用?常见的死循环问题如何解决?

我们用 Spring Boot 里面默认集成的 fasterxml.jackson 加以说明&#xff0c;这看似和 JPA 没什么关系&#xff0c;但是一旦我们和 Entity 一起使用的时候&#xff0c;就会遇到一些问题&#xff0c;特别是新手同学&#xff0c;我们这一课时详细介绍一下用法。先来跟着我了解一下…