• mysql8.0 服务器和服务器启动程序 客户端程序


    服务器程序

    服务器启动程序帮助命令:

    mysqld --verbose --help

    mysqld --verbose --help |grep 关键字 
    mysqld --verbose --help |grep skip

    [root@student ~]# mysqld --verbose --help |grep skip  |tail -6
    2023-10-14T13:53:39.051831Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
    skip-grant-tables                                              FALSE
    skip-name-resolve                                            FALSE
    skip-networking                                                FALSE
    skip-show-database                                         FALSE
    skip-slave-start                                                 FALSE
    slave-skip-errors                                              (No default value)


     mysqld_safe — MySQL 服务器启动脚本,服务器启动程序安全模式

    mysqld_safe

    Table 4.6 mysqld_safe Options

    Option NameDescription
    --basedirPath to MySQL installation directory
    --core-file-sizeSize of core file that mysqld should be able to create
    --datadirPath to data directory
    --defaults-extra-fileRead named option file in addition to usual option files
    --defaults-fileRead only named option file
    --helpDisplay help message and exit
    --ledirPath to directory where server is located
    --log-errorWrite error log to named file
    --malloc-libAlternative malloc library to use for mysqld
    --mysqldName of server program to start (in ledir directory)
    --mysqld-safe-log-timestampsTimestamp format for logging
    --mysqld-versionSuffix for server program name
    --niceUse nice program to set server scheduling priority
    --no-defaultsRead no option files
    --open-files-limitNumber of files that mysqld should be able to open
    --pid-filePath name of server process ID file
    --plugin-dirDirectory where plugins are installed
    --portPort number on which to listen for TCP/IP connections
    --skip-kill-mysqldDo not try to kill stray mysqld processes
    --skip-syslogDo not write error messages to syslog; use error log file
    --socketSocket file on which to listen for Unix socket connections
    --syslogWrite error messages to syslog
    --syslog-tagTag suffix for messages written to syslog
    --timezoneSet TZ time zone environment variable to named value
    --userRun mysqld as user having name user_name or numeric user ID user_id

     MySQL 服务器启动脚本

    在/etc/init.d/目录下

    mysql.server start

    mysql.server stop

    如果您从源代码发行版或使用 二进制分发格式,不会自动安装MySQL.Server,您可以 手动安装脚本。它可以在MySQL下的安装目录support-files/中找到。复制脚本到目录/etc/init.d

    cp mysql.server /etc/init.d/mysql

    chmod +x /etc/init.d/mysql

    chkconfig --add mysql
    在某些 Linux 系统上,以下命令似乎也 是完全启用 MySQL 脚本所必需的:
    chkconfig --level 345 mysql on

    mysql.server从选项文件的[mysql.server]和[mysqld]部分读取选项。为了向后兼容性,它还读取[mysql_server]部分,但要保持最新,您应该将这些部分重命名为[mysql.server]。

    典型的/etc/my.cnfmy.cnf文件可能如下所示:

    [mysqld]

    datadir=/usr/local/mysql/var

    socket=/var/tmp/mysql.sock

    port=3306

    user=mysql

    [mysql.server]

    basedir=/usr/local/mysql


    mysqld_multi — 管理多个 MySQL 服务器

    mysqld_multi在my.cnf(或--defaults file选项命名的文件)中搜索名为[mysqldN]的组。N可以是任何正整数。在下面的讨论中,这个数字被称为选项组号或GNR。组号将选项组彼此区分开来,并用作mysqld_multi的参数,以指定要启动、停止或获取状态报告的服务器。这些组中列出的选项与您在用于启动mysqld的[mysqld]组中使用的选项相同。

    多实例管理范例

    mysqld_multi --example

    [root@student ~]# mysqld_multi --example
    # This is an example of a my.cnf file for mysqld_multi.
    # Usually this file is located in home dir ~/.my.cnf or /etc/my.cnf
    #
    # SOME IMPORTANT NOTES FOLLOW:
    #
    # 1.COMMON USER
    #
    #   Make sure that the MySQL user, who is stopping the mysqld services, has
    #   the same password to all MySQL servers being accessed by mysqld_multi.
    #   This user needs to have the 'Shutdown_priv' -privilege, but for security
    #   reasons should have no other privileges. It is advised that you create a
    #   common 'multi_admin' user for all MySQL servers being controlled by
    #   mysqld_multi. Here is an example how to do it:
    #
    #   GRANT SHUTDOWN ON *.* TO multi_admin@localhost IDENTIFIED BY 'password'
    #
    #   You will need to apply the above to all MySQL servers that are being
    #   controlled by mysqld_multi. 'multi_admin' will shutdown the servers
    #   using 'mysqladmin' -binary, when 'mysqld_multi stop' is being called.
    #
    # 2.PID-FILE
    #
    #   If you are using mysqld_safe to start mysqld, make sure that every
    #   MySQL server has a separate pid-file. In order to use mysqld_safe
    #   via mysqld_multi, you need to use two options:
    #
    #   mysqld=/path/to/mysqld_safe
    #   ledir=/path/to/mysqld-binary/
    #
    #   ledir (library executable directory), is an option that only mysqld_safe
    #   accepts, so you will get an error if you try to pass it to mysqld directly.
    #   For this reason you might want to use the above options within [mysqld#]
    #   group directly.
    #
    # 3.DATA DIRECTORY
    #
    #   It is NOT advised to run many MySQL servers within the same data directory.
    #   You can do so, but please make sure to understand and deal with the
    #   underlying caveats. In short they are:
    #   - Speed penalty
    #   - Risk of table/data corruption
    #   - Data synchronising problems between the running servers
    #   - Heavily media (disk) bound
    #   - Relies on the system (external) file locking
    #   - Is not applicable with all table types. (Such as InnoDB)
    #     Trying so will end up with undesirable results.
    #
    # 4.TCP/IP Port
    #
    #   Every server requires one and it must be unique.
    #
    # 5.[mysqld#] Groups
    #
    #   In the example below the first and the fifth mysqld group was
    #   intentionally left out. You may have 'gaps' in the config file. This
    #   gives you more flexibility.
    #
    # 6.MySQL Server User
    #
    #   You can pass the user=... option inside [mysqld#] groups. This
    #   can be very handy in some cases, but then you need to run mysqld_multi
    #   as UNIX root.
    #
    # 7.A Start-up Manage Script for mysqld_multi
    #
    #   In the recent MySQL distributions you can find a file called
    #   mysqld_multi.server.sh. It is a wrapper for mysqld_multi. This can
    #   be used to start and stop multiple servers during boot and shutdown.
    #
    #   You can place the file in /etc/init.d/mysqld_multi.server.sh and
    #   make the needed symbolic links to it from various run levels
    #   (as per Linux/Unix standard). You may even replace the
    #   /etc/init.d/mysql.server script with it.
    #
    #   Before using, you must create a my.cnf file either in /usr/local/mysql/my.cnf
    #   or /root/.my.cnf and add the [mysqld_multi] and [mysqld#] groups.
    #
    #   The script can be found from support-files/mysqld_multi.server.sh
    #   in MySQL distribution. (Verify the script before using)
    #

    [mysqld_multi]
    mysqld     = /usr/local/mysql/bin/mysqld_safe
    mysqladmin = /usr/local/mysql/bin/mysqladmin
    user       = multi_admin
    password   = my_password

    [mysqld2]
    socket     = /tmp/mysql.sock2
    port       = 3307
    pid-file   = /usr/local/mysql/data2/hostname.pid2
    datadir    = /usr/local/mysql/data2
    language   = /usr/local/mysql/share/mysql/english
    user       = unix_user1

    [mysqld3]
    mysqld     = /path/to/mysqld_safe
    ledir      = /path/to/mysqld-binary/
    mysqladmin = /path/to/mysqladmin
    socket     = /tmp/mysql.sock3
    port       = 3308
    pid-file   = /usr/local/mysql/data3/hostname.pid3
    datadir    = /usr/local/mysql/data3
    language   = /usr/local/mysql/share/mysql/swedish
    user       = unix_user2

    [mysqld4]
    socket     = /tmp/mysql.sock4
    port       = 3309
    pid-file   = /usr/local/mysql/data4/hostname.pid4
    datadir    = /usr/local/mysql/data4
    language   = /usr/local/mysql/share/mysql/estonia
    user       = unix_user3
     
    [mysqld6]
    socket     = /tmp/mysql.sock6
    port       = 3311
    pid-file   = /usr/local/mysql/data6/hostname.pid6
    datadir    = /usr/local/mysql/data6
    language   = /usr/local/mysql/share/mysql/japanese
    user       = unix_user4
     

    多实例启动

    mysqld_multi start  2-4,6

    多实例关闭

    mysqld_multi stop  2-4,6

    客户端程序

     mysql — MySQL 命令行客户端

    使用 mysql 非常简单。从命令解释器的提示符输入如下:
        mysql db_name
        或:
        mysql --user=user_name --password db_name

    比如 登录db_1数据库
        [root@student ~]# mysql db_1
        mysql> show tables;
        Empty set (0.00 sec)
        mysql> 
    比如 登录MySQL数据库
        mysql> show tables;
        +---------------------------+
        | Tables_in_mysql       |
        +---------------------------+
        | columns_priv            |
        | component               |
        | db                             |
        | default_roles            |
        | engine_cost             |
        | func                          |
     


    执行脚本文件:

    mysql db_name < script.sql > output.tab

    [root@student ~]# cat script.sql 
    show tables
    [root@student ~]#  mysql  mysql < script.sql > output.tab

    [root@student ~]# cat output.tab |tail -6
    time_zone
    time_zone_leap_second
    time_zone_name
    time_zone_transition
    time_zone_transition_type
    user
    [root@student ~]# 


     mysql 客户端选项

    mysql支持以下选项,这些选项可以在命令行上指定,也可以在选项文件的[mysql]和[client]组中指定

    mysql --verbose --help
    mysql> help

    help contents

    mysql> help 命令

     mysqladmin — 一个 MySQL 服务器管理程序
     mysqlcheck — 表维护程序
     mysqldump — 数据库备份程序
     mysqlimport — 一个数据导入程序
     mysqlpump — 数据库备份程序
     mysqlshow — 显示数据库、表和列信息
     mysqlslap — 负载仿真客户端

  • 相关阅读:
    算法学习 | 贪心算法~通过局部最优的选择来得到整体最优解
    单目标应用:墨西哥蝾螈优化算法(Mexican Axolotl Optimization,MAO)求解微电网优化MATLAB
    requests库的使用(一篇就够了)
    Blazor/Hybird 触屏下单程序调优笔记
    动手实现深度学习(5):计算图的实现
    《Oracle系列》Oracle 索引使用情况查看
    中国PETG市场预测及战略研究报告(2022版)
    使用 BR 恢复集群
    21天打卡挑战学习MySQL——《监控神器Zabbix部署》第三周 第九篇
    MySQL——索引
  • 原文地址:https://blog.csdn.net/qq_25439957/article/details/133831593