前端技术
HTML
CSS
Javascript
前端框架和UI库
VUE
ReactJS
AngularJS
JQuery
NodeJS
JSON
Element-UI
Bootstrap
Material UI
服务端和客户端
Java
Python
PHP
Golang
Scala
Kotlin
Groovy
Ruby
Lua
.net
c#
c++
后端WEB和工程框架
SpringBoot
SpringCloud
Struts2
MyBatis
Hibernate
Tornado
Beego
Go-Spring
Go Gin
Go Iris
Dubbo
HessianRPC
Maven
Gradle
数据库
MySQL
Oracle
Mongo
中间件与web容器
Redis
MemCache
Etcd
Cassandra
Kafka
RabbitMQ
RocketMQ
ActiveMQ
Nacos
Consul
Tomcat
Nginx
Netty
大数据技术
Hive
Impala
ClickHouse
DorisDB
Greenplum
PostgreSQL
HBase
Kylin
Hadoop
Apache Pig
ZooKeeper
SeaTunnel
Sqoop
Datax
Flink
Spark
Mahout
数据搜索与日志
ElasticSearch
Apache Lucene
Apache Solr
Kibana
Logstash
数据可视化与OLAP
Apache Atlas
Superset
Saiku
Tesseract
系统与容器
Linux
Shell
Docker
Kubernetes
[my.cnf]的搜索结果
这里是文章列表。热门标签的颜色随机变换,标签颜色没有特殊含义。
点击某个标签可搜索标签相关的文章。
点击某个标签可搜索标签相关的文章。
转载文章
... 这条命令可以初始化mysql,删除匿名用户,设置root密码等等....mysql_secure_installation1.输入当前密码,初次安装后是没有密码的,直接回车2.询问是否使用 'unix_socket' 进行身份验证: n3.为 root 设置密码:y4.输入 root 的新密码: root5.确认输入 root 的新密码: root6.是否移除匿名用户,这个随意,建议删除: y7.拒绝用户远程登录,这个建议开启:n8.删除 test 库,可以保留:n9.重新加载权限表:y 6. 设置mysql的中文编码支持,修改/etc/my.cnf 1.vi /etc/my.cnf在[mysqld]中添加参数,使得mariadb服务端支持中文[mysqld]character-set-server=utf8collation-server=utf8_general_ci2.重启mariadb服务,读取my.cnf新配置systemctl restart mariadb 3.登录数据库,查看字符编码mysql -uroot -p输入 \s 查看编码 7. mysql常用命 desc 查看表结构create database 数据库名create table 表名查看如何创建db的show create database 库名 查看如何创建table结构的show create table 表名; 修改mysql的密码set password = PASSWORD('redhat'); 创建mysql的普通用户,默认权限非常低create user zhang@'%' identified by '123456'; 查询mysql数据库中的用户信息use mysql;select host,user,password from user; 7. 给用户添加权限命令 对所有库和所有表授权所有权限grant all privileges on . to 账户@主机名 给zhang用户授予所有权限grant all privileges on . to zhang@'%'; 刷新授权表flush privileges; 8. 给用户添加权限命令 给zhangsan用户授予所有权限grant all privileges on . to zhangsan@'%'; 给与root权限授予远程登录的命令 'centos这是密码随意设置grant all privileges on . to root@'%' identified by '123456'; 此时可以在windows登录linux的数据库 连接服务器的mysqlmysql -uyining -p -h 服务器的地址 9. 数据备份与恢复 导出当前数据库的所有db,到一个文件中1.mysqldump -u root -p --all-databases > /data/AllMysql.dump2.登录mysql 导入数据mysql -u root -p> source /data/AllMysql.dump3.通过命令导入数据 在登录时候,导入数据文件,一样可以写入数据mysql -uroot -p < /data/AllMysql.dump 10. 修改Mariadb存储路径 10.1 首先确定MariaDB数据库能正常运行,确定正常后关闭服务 systemctl stop mariadb 10.2 建立要更改数据存放的目录,如:我这单独分了一个区/data存放MariaDB的数据 mkdir /data/mysql_data chown -R mysql:mysql /data/mysql_data 10.3 复制默认数据存放文件夹到/data/mysql_data cp -a /var/lib/mysql /data/mysql_data 10.4 修改/etc/my.cnf.d/server.cnf vim /etc/my.cnf.d/server.cnf 在[mysqld]标签下添加如下内容 datadir=/data/mysql_data/mysqlsocket=/var/lib/mysql/mysql.sockdefault-character-set=utf8character_set_server=utf8slow_query_log=onslow_query_log_file=/data/mysql_data/slow_query_log.loglong_query_time=2 10.5 配置MariaDB慢查询 touch /data/mysql_data/slow_query_log.logchown mysql:mysql /data/mysql_data/slow_query_log.log 10.6 重启数据库 systemctl start mariadb 10.7 注意: 1、配置文件my.cnf存在,但是修改的并不是my.cnf,而是/etc/my.cnf.d/server.cnf; 2、并没有更改mysql.sock的路径配置; 3、没有修改/etc/init.d/mysql中的内容; 4、没有修改mysql_safe中的内容; 5、增加了数据库的慢查询配置。 11. Mariadb主从复制 11.1 主从库初始化 这条命令可以初始化mysql,删除匿名用户,设置root密码等等....mysql_secure_installation1.输入当前密码,初次安装后是没有密码的,直接回车2.询问是否使用 'unix_socket' 进行身份验证: n3.为 root 设置密码:y4.输入 root 的新密码: root5.确认输入 root 的新密码: root6.是否移除匿名用户,这个随意,建议删除: y7.拒绝用户远程登录,这个建议开启:n8.删除 test 库,可以保留:n9.重新加载权限表:y 11.2 修改主库配置 [root@mster mysql] grep -Ev "^$|^" /etc/my.cnf.d/server.cnf[server][mysqld]character-set-server=utf8collation-server=utf8_general_ciserver_id = 13 一组主从组里的每个id必须是唯一值。推荐用ip位数log-bin= mysql-bin 二进制日志,后面指定存放位置。如果只是指定名字,默认存放在/var/lib/mysql下lower_case_table_names=1 不区分大小写binlog-format=ROW 二进制日志文件格式log-slave-updates=True slave更新是否记入日志sync-master-info=1 值为1确保信息不会丢失slave-parallel-threads=3 同时启动多少个复制线程,最多与要复制的数据库数量相等即可binlog-checksum=CRC32 效验码master-verify-checksum=1 启动主服务器效验slave-sql-verify-checksum=1 启动从服务器效验[galera][embedded][mariadb][mariadb-10.6][root@mster-k8s mysql] 11.2 修改从库配置 [mysqld]character-set-server=utf8collation-server=utf8_general_ciserver_id=14log-bin= mysql-bin log-bin是二进制文件relay_log = relay-bin 中继日志, 后面指定存放位置。如果只是指定名字,默认存放在/var/lib/mysql下lower_case_table_names=1 11.3 重启主库和从库服务 systemctl restart mariad 11.4 master节点配置 MariaDB [huawei]> grant replication slave, replication client on . to 'liu'@'%' identified by '123456';Query OK, 0 rows affected (0.001 sec)MariaDB [huawei]> show master status;+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 | 4990 | | |+------------------+----------+--------------+------------------+1 row in set (0.000 sec)MariaDB [huawei]> select binlog_gtid_pos('mysql-bin.000001', 4990 );+-------------------------------------------+| binlog_gtid_pos('mysql-bin.000001', 4990) |+-------------------------------------------+| 0-13-80 |+-------------------------------------------+1 row in set (0.000 sec)MariaDB [huawei]> flush privileges; 11.5 slave节点配置 MariaDB [(none)]> set global gtid_slave_pos='0-13-80';Query OK, 0 rows affected (0.004 sec)MariaDB [(none)]> change master to master_host='101.34.141.216',master_user='liu',master_password='123456',master_use_gtid=slave_pos;Query OK, 0 rows affected (0.008 sec)MariaDB [(none)]> start slave;Query OK, 0 rows affected (0.005 sec)MariaDB [(none)]> 11.6 验证salve状态 MariaDB [(none)]> show slave status\G 1. row Slave_IO_State: Waiting for master to send eventMaster_Host: 101.34.141.216Master_User: liuMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000001Read_Master_Log_Pos: 13260Relay_Log_File: relay-bin.000002Relay_Log_Pos: 10246Relay_Master_Log_File: mysql-bin.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 13260Relay_Log_Space: 10549Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: 本篇文章为转载内容。原文链接:https://blog.csdn.net/l363130002/article/details/126121255。 该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。 作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。 如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。
2023-07-12 10:11:01
310
转载
转载文章
...除相应内容。 2. MySQL 2.1. 快速参考 维护者:Docker 社区和 MySQL 团队 从哪里获得帮助:Docker 社区论坛、Docker 社区 Slack 或 Stack Overflow 2.2. 支持的标签和各自的 Dockerfile 链接 8.0.28, 8.0, 8, latest 5.7.37, 5.7, 5 2.3. 快速参考(续) 在哪里提交问题:https://github.com/docker-library/mysql/issues 支持的架构:(更多信息)amd64 发布的镜像工件详情:repo-info repo 的 repos/mysql/ 目录(历史)(镜像元数据、传输大小等) 镜像更新:official-images repo 的 library/mysql 标签 官方图像 repo 的库/mysql 文件(历史) 此描述的来源:docs repo 的 mysql/ 目录(历史) 2.4. 如何使用镜像 2.4.1. 启动一个mysql服务器实例 启动 MySQL 实例很简单: $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 其中 some-mysql 是您要分配给容器的名称, my-secret-pw 是要为 MySQL root 用户设置的密码,而 tag 是指定您想要的 MySQL 版本的标签。 有关相关标签,请参见上面的列表。 以下是示例(通常要设置时区),注意-v 这里是挂载磁盘,请提前创建目录/var/mysql/data,/var/lib/mysql是容器里的原持久化目录: docker run --name mysql202201 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /var/mysql/data:/var/lib/mysql -d mysql:5.7 2.4.2. 从 MySQL 命令行客户端连接到 MySQL 以下命令启动另一个 mysql 容器实例并针对您的原始 mysql 容器运行 mysql 命令行客户端,允许您针对您的数据库实例执行 SQL 语句: $ docker run -it --network some-network --rm mysql mysql -hsome-mysql -uexample-user -p 其中 some-mysql 是原始 mysql 容器的名称(连接到 some-network Docker 网络)。 此镜像也可以用作非 Docker 或远程实例的客户端: $ docker run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p 有关 MySQL 命令行客户端的更多信息,请参阅 MySQL 文档。 2.4.3. 容器外访问和查看 MySQL 日志 docker exec 命令允许您在 Docker 容器内运行命令。 以下命令行将为您提供 mysql 容器内的 bash shell: $ docker exec -it some-mysql bash 第一次启动一个MySQL容器后,需要对账户进行授权,否则无法远程访问,请先使用上面的命令进入容器内,然后使用以下命令连接到mysql服务: mysql -uroot -p 输入密码回车,进入mysql命令界面mysql> 接着授权root远程访问权限: mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456'; 然后就可以远程用MySQL客户端连接到MySQL容器了。 日志可通过 Docker 的容器日志获得: $ docker logs some-mysql 2.4.4. 使用自定义 MySQL 配置文件 MySQL 的默认配置可以在 /etc/mysql/my.cnf 中找到,其中可能包含额外的目录,例如 /etc/mysql/conf.d 或 /etc/mysql/mysql.conf.d。 请检查 mysql 映像本身中的相关文件和目录以获取更多详细信息。 如果 /my/custom/config-file.cnf 是你的自定义配置文件的路径和名称,你可以这样启动你的 mysql 容器(注意这个命令只使用了自定义配置文件的目录路径): $ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 这将启动一个新容器 some-mysql,其中 MySQL 实例使用来自 /etc/mysql/my.cnf 和 /etc/mysql/conf.d/config-file.cnf 的组合启动设置,后者的设置优先 . 没有 cnf 文件的配置 许多配置选项可以作为标志传递给 mysqld。 这将使您可以灵活地自定义容器,而无需 cnf 文件。 例如,如果要将所有表的默认编码和排序规则更改为使用 UTF-8 (utf8mb4),只需运行以下命令: $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 如果您想查看可用选项的完整列表,只需运行: $ docker run -it --rm mysql:tag --verbose --help 2.4.5. 环境变量 启动 mysql 镜像时,可以通过在 docker run 命令行中传递一个或多个环境变量来调整 MySQL 实例的配置。 请注意,如果您使用已包含数据库的数据目录启动容器,则以下任何变量都不会产生任何影响:任何预先存在的数据库在容器启动时将始终保持不变。 另请参阅 https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html 以获取 MySQL 的环境变量的文档(尤其是 MYSQL_HOST 等变量,已知与此镜像一起使用时会导致问题)。 MYSQL_ROOT_PASSWORD 此变量是必需的,并指定将为 MySQL root 超级用户帐户设置的密码。 在上面的示例中,它被设置为 my-secret-pw。 MYSQL_DATABASE 此变量是可选的,允许您指定要在映像启动时创建的数据库的名称。 如果提供了用户/密码(见下文),则该用户将被授予对此数据库的超级用户访问权限(对应于 GRANT ALL)。 MYSQL_USER、MYSQL_PASSWORD 这些变量是可选的,用于创建新用户和设置该用户的密码。 该用户将被授予对 MYSQL_DATABASE 变量指定的数据库的超级用户权限(见上文)。 要创建用户,这两个变量都是必需的。 请注意,不需要使用此机制来创建超级用户超级用户,默认情况下会使用 MYSQL_ROOT_PASSWORD 变量指定的密码创建该用户。 MYSQL_ALLOW_EMPTY_PASSWORD 这是一个可选变量。 设置为非空值,例如 yes,以允许使用 root 用户的空白密码启动容器。 注意:除非您真的知道自己在做什么,否则不建议将此变量设置为 yes,因为这将使您的 MySQL 实例完全不受保护,从而允许任何人获得完全的超级用户访问权限。 MYSQL_RANDOM_ROOT_PASSWORD 这是一个可选变量。 设置为非空值,如 yes,为 root 用户生成随机初始密码(使用 pwgen)。 生成的根密码将打印到标准输出(生成的根密码:…)。 MYSQL_ONETIME_PASSWORD 一旦初始化完成,将 root(不是 MYSQL_USER 中指定的用户!)用户设置为过期,强制在第一次登录时更改密码。 任何非空值都将激活此设置。 注意:此功能仅在 MySQL 5.6+ 上受支持。 在 MySQL 5.5 上使用此选项将在初始化期间引发适当的错误。 MYSQL_INITDB_SKIP_TZINFO 默认情况下,入口点脚本会自动加载 CONVERT_TZ() 函数所需的时区数据。 如果不需要,任何非空值都会禁用时区加载。 2.4.6. Docker Secrets 作为通过环境变量传递敏感信息的替代方法,_FILE 可以附加到先前列出的环境变量中,从而导致初始化脚本从容器中存在的文件中加载这些变量的值。 特别是,这可用于从存储在 /run/secrets/<secret_name> 文件中的 Docker 机密中加载密码。 例如: $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root -d mysql:tag 目前,这仅支持 MYSQL_ROOT_PASSWORD、MYSQL_ROOT_HOST、MYSQL_DATABASE、MYSQL_USER和 MYSQL_PASSWORD。 2.4.7. 初始化一个新实例 首次启动容器时,将使用提供的配置变量创建并初始化具有指定名称的新数据库。 此外,它将执行 /docker-entrypoint-initdb.d 中的扩展名为 .sh、.sql 和 .sql.gz 的文件。 文件将按字母顺序执行。 您可以通过将 SQL 转储安装到该目录并提供带有贡献数据的自定义镜像来轻松填充您的 mysql 服务。 SQL 文件将默认导入到 MYSQL_DATABASE 变量指定的数据库中。 2.5. 注意事项 2.5.1. 在哪里存储数据 重要提示:有几种方法可以存储在 Docker 容器中运行的应用程序使用的数据。 我们鼓励 mysql 映像的用户熟悉可用的选项,包括: 让 Docker 通过使用自己的内部卷管理将数据库文件写入主机系统上的磁盘来管理数据库数据的存储。 这是默认设置,对用户来说简单且相当透明。 缺点是对于直接在主机系统(即外部容器)上运行的工具和应用程序,可能很难找到这些文件。 在主机系统(容器外部)上创建一个数据目录,并将其挂载到容器内部可见的目录。 这会将数据库文件放置在主机系统上的已知位置,并使主机系统上的工具和应用程序可以轻松访问这些文件。 缺点是用户需要确保目录存在,例如主机系统上的目录权限和其他安全机制设置正确。 Docker 文档是了解不同存储选项和变体的一个很好的起点,并且有多个博客和论坛帖子在该领域讨论和提供建议。 我们将在这里简单地展示上面后一个选项的基本过程: 在主机系统上的合适卷上创建数据目录,例如 /my/own/datadir。 像这样启动你的 mysql 容器: $ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 命令的 -v /my/own/datadir:/var/lib/mysql 部分将底层主机系统中的 /my/own/datadir 目录挂载为容器内的 /var/lib/mysql ,默认情况下 MySQL 将 写入其数据文件。 2.5.2. 在 MySQL 初始化完成之前没有连接 如果容器启动时没有初始化数据库,则会创建一个默认数据库。 虽然这是预期的行为,但这意味着在初始化完成之前它不会接受传入的连接。 在使用同时启动多个容器的自动化工具(例如 docker-compose)时,这可能会导致问题。 如果您尝试连接到 MySQL 的应用程序没有处理 MySQL 停机时间或等待 MySQL 正常启动,那么在服务启动之前放置一个连接重试循环可能是必要的。 有关官方图像中此类实现的示例,请参阅 WordPress 或 Bonita。 2.5.3. 针对现有数据库的使用 如果您使用已经包含数据库的数据目录(特别是 mysql 子目录)启动 mysql 容器实例,则应该从运行命令行中省略 $MYSQL_ROOT_PASSWORD 变量; 在任何情况下都将被忽略,并且不会以任何方式更改预先存在的数据库。 2.5.4. 以任意用户身份运行 如果你知道你的目录的权限已经被适当地设置了(例如对一个现有的数据库运行,如上所述)或者你需要使用特定的 UID/GID 运行 mysqld,那么可以使用 --user 调用这个镜像设置为任何值(root/0 除外)以实现所需的访问/配置: $ mkdir data$ ls -lnd datadrwxr-xr-x 2 1000 1000 4096 Aug 27 15:54 data$ docker run -v "$PWD/data":/var/lib/mysql --user 1000:1000 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 2.5.5. 创建数据库转储 大多数普通工具都可以工作,尽管在某些情况下它们的使用可能有点复杂,以确保它们可以访问 mysqld 服务器。 确保这一点的一种简单方法是使用 docker exec 并从同一容器运行该工具,类似于以下内容: $ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql 2.5.6. 从转储文件恢复数据 用于恢复数据。 您可以使用带有 -i 标志的 docker exec 命令,类似于以下内容: $ docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql 备注 docker安装完MySQL,后面就是MySQL容器在跑,基本上就是当MySQL服务去操作,以前MySQL怎么做现在还是一样怎么做,只是个别操作因为docker包了一层,麻烦一点。 有需要的话,我们也可以基于MySQL官方镜像去定制我们自己的镜像,就比如主从镜像之类的。 本篇文章为转载内容。原文链接:https://blog.csdn.net/muluo7fen/article/details/122731852。 该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。 作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。 如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。
2023-05-29 17:31:06
101
转载
MySQL
如何配置 MySQL 的系统参数? MySQL 是一款流行的关系型数据库,可以根据需要进行配置,并决定系统参数的数值。本文将介绍如何配置 MySQL 的系统参数。 1. 查看系统参数 要配置 MySQL 的系统参数,首先需要查看现有的系统参数。可以通过以下命令启动 MySQL 终端: mysql -u username -p password 然后键入你的账户名和口令。接下来,键入以下命令: SHOW VARIABLES; 这将展示 MySQL 现有的系统参数及其数值。 2. 变更系统参数 要变更 MySQL 的系统参数,可以使用以下命令: SET GLOBAL VARIABLE_NAME=value; 其中,VARIABLE_NAME 是你想要变更的系统参数的名字,value 是你要将其配置为的数值。比如,要将 max_connections 系统参数配置为 200,可以键入以下命令: SET GLOBAL max_connections=200; 3. 配置永久系统参数 要使所做的更改在 MySQL 重启后持续保留,请将其写入 MySQL 的 my.cnf 文件。该文件包括了 MySQL 的配置配置,包括系统参数。 可以使用以下命令启动该文件进行编辑: sudo vi /etc/mysql/my.cnf 在文件中找到你要更改的参数,并进行变更。比如,若要将 max_connections 系统参数配置为 200,可以使用以下命令: max_connections=200 然后保存文件并重启 MySQL 服务: sudo service mysql restart 现在, MySQL 应该以 200 为最大并发连接数来运行了。 总结 本文介绍了如何配置 MySQL 的系统参数。首先要查看现有的系统参数,然后变更它们。要确保所做的更改在 MySQL 重启后持续保留,请将其写入 MySQL 的 my.cnf 文件。下次你需要配置 MySQL 系统参数时,不妨试试这些方法吧。
2023-09-12 09:01:49
113
算法侠
MySQL
在Linux系统上,MySQL的安装路径可以通过以下步骤来查看: 执行下面的命令 打开 MySQL 的配置文件 sudo nano /etc/mysql/my.cnf 在配置文件中查找 bind-address 即可看到 MySQL 的安装路径 bind-address = /var/run/mysqld/mysqld.sock 上面的配置文件中的示例路径/var/run/mysqld/mysqld.sock就是 MySQL 的安装路径。除此之外,还可以通过以下命令来查看 MySQL 的安装路径: 切换到 MySQL 目录下 cd /usr/bin 查看当前目录下包含 mysqld 的文件,然后找到 mysqld 程序的绝对路径 find ./ -name mysqld 执行上述命令会返回 MySQL 的安装路径,如/usr/bin/mysqld。 总之,通过配置文件或 find 命令,可以很容易地找到 MySQL 在 Linux 上的安装路径。
2023-12-31 14:25:35
112
软件工程师
MySQL
MySQL是一种十分普及的开放源代码数据库维护系统,许多网站和应用程序都使用它来保管和维护数据。如果你在自己的电脑上安装了MySQL并设置了口令,有时候需要查阅该口令以供进行其他处理。下面将介绍几种方式来查阅自己电脑上MySQL的口令。 方式一:查阅MySQL设置文件 1. 在电脑上搜索MySQL的设置文件my.cnf或my.ini,并开启文件。 2. 在文件中搜索[client]或[mysqldump]部分,通常口令会在该部分中显示。 3. 在该部分中搜索password或passwd的内容,该内容即为MySQL的口令。 方式二:通过MySQL工具查阅口令 1. 开启MySQL命令行工具或其它MySQL客户端。 2. 使用以下命令登录到MySQL服务器:mysql -u root -p。 3. 输入你自己设置的口令以登录到MySQL服务器。 4. 执行以下命令来查阅口令:SELECT user, host, password FROM mysql.user; 方式三:重置MySQL口令 如果以上方式都不能帮助你找回MySQL口令,那么可以考虑重置口令。以下是重置MySQL口令的基本步骤: 1. 停止MySQL服务。 2. 创建一个备份文件。 3. 启动MySQL服务,并跳过权限验证。 4. 使用UPDATE语句更新用户口令。 5. 停止MySQL服务并重新启动,以使更改生效。 总结 在工作中,有时候需要查阅自己电脑MySQL的口令,可以使用上述方式来实现。无论是通过查阅设置文件还是登录MySQL服务器,都十分简单。如果以上方式都不能找回口令,那么重置口令是最后的手段。希望这篇文章能够帮助到你。
2024-02-18 15:42:33
121
码农
MySQL
...及主机运维人员来说,MySQL为极为普遍的数据库管理系统,怎样将MySQL数据库添加你的主机为关键步骤。在这里,我们将阐述怎样在Linux主机上将MySQL部署和设定成一个云端数据库主机。以下为基本步骤: 1、部署MySQL主机 sudo apt-get update sudo apt-get install mysql-server 2、设定MySQL主机 sudo mysql_secure_installation 3、查看MySQL主机状况 sudo systemctl status mysql 4、登录MySQL主机 mysql -u root -p 5、创建新用户 CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; 6、授权用户访问数据库 GRANT ALL PRIVILEGES ON . TO 'username'@'localhost'; FLUSH PRIVILEGES; 7、远程访问MySQL主机 sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 找到并更改“bind-address”选项 bind-address = 0.0.0.0 8、重启MySQL服务 sudo systemctl restart mysql 现在,您已经成功地将MySQL数据库添加到您的主机中。记住保护您的主机,确保只有授权用户可以访问您的数据库。
2023-10-24 11:08:12
58
逻辑鬼才
MySQL
MySQL简介 MySQL是一种普遍的关系型数据库管控系统,可用于多种类型应用程序的信息管控,诸如WordPress、Drupal和Joomla等网页开发。MySQL依赖SQL语言来访问和管控数据,其默认端口为3306。 MySQL部署 MySQL可在Windows、Linux和macOS等系统平台上部署。在Windows上,可以通过MySQL官方网站的下载专区来下载MySQL的Windows部署程序。在Linux上,可以运行终端命令部署MySQL。于Mac OS中,可以运行包管理器来部署MySQL。 MySQL 3306端口设置 默认情况下,MySQL运行3306端口来访问数据库。如果需要设置MySQL的端口,可以通过修改MySQL设置文件my.cnf来实现。在my.cnf文件中,可以指定MySQL的服务端口、主机地址等设置信息。修改完成后,需要重新启动MySQL服务来使设置生效。 常见MySQL错误 在运行MySQL时,常见的错误包括连接失败、权限拒绝、数据库不存在等。这些错误通常可以通过查看MySQL的错误日志或运行终端命令来进行查找和解决。同时,也可以通过在MySQL中执行SQL语句来检查和修复数据表的错误。 MySQL备份和恢复 定期备份MySQL数据库是防止数据损坏、丢失的重要手段。可以运行MySQL自带的终端命令来进行备份和恢复,诸如通过mysqldump命令备份数据库,运行mysql命令进行恢复操作。备份数据时需要注意相关参数的设置,避免备份数据过大或内存资源不足等问题。 结语 MySQL在各类应用程序中广泛运行,掌握MySQL的运行和维护方法对于程序员和网站管控员都是必备技能。在运行MySQL时,需要注意数据安全、备份恢复等关键问题,以保障数据的完整性和可靠性。
2023-02-05 14:43:17
74
程序媛
转载文章
... 最终找到办法,就是mysql设置的问题,有my.ini的就找这个文件,没有的就找my.cnf(这个一般都在/ect/my.conf) 本作者使用的CentOS7.6系统: 然后打开MySql配置文件 然后找到[MySql] 然后找 sql-mode=STRICT_TRANS_TABLESNO_ENGINE_SUBSTITUTION 问题原因: 主要是MySQL使用了严格验证方式: 解决方法: 直接把sql-mode模式改变下 这个可能你我的不相同,你只要找到sql-mode 就好 然后把这句删掉,改成: sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 然后在重启数据库 service mysqld restart 完美解决 更多教程:www.zcxsmart.com 本篇文章为转载内容。原文链接:https://blog.csdn.net/LizmWintac/article/details/126901852。 该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。 作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。 如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。
2023-12-02 23:16:25
289
转载
Linux
Linux中MySQL数据库连接问题及解决方案 Linux是一种自由和开放源码的操作系统,非常适合开发和部署各种软件和服务。在这些服务中,数据库服务是非常重要的一环。MySQL,这可是个大名鼎鼎的关系型数据库管理系统,在各种各样的应用场景里头,那可是无人不知无人不晓的存在,火得不得了,大家都在用!嘿,你知道吗,在咱们用Linux系统捣鼓MySQL数据库连接的时候,有时候还真会碰到一些让人挠头的小状况呢!本文将介绍这些问题及其解决方案。 一、问题一 MySQL服务器未启动 首先,我们需要确保MySQL服务器已经成功启动。我们可以使用以下命令检查: bash sudo systemctl status mysql 如果输出显示为active (running),那么MySQL服务器已经启动。如果看到提示说inactive (dead)或者其他一些错误消息,那很可能意味着我们需要亲自动手启动MySQL服务器了。 解决方法是使用sudo systemctl start mysql命令来启动MySQL服务器。 二、问题二 MySQL数据库配置文件存在问题 MySQL数据库的配置文件通常位于/etc/mysql/my.cnf或者/etc/my.cnf。这个文件里头记录了一些MySQL的基础配置内容,就像端口号啊、日志存放的路径啥的,都是些重要的小细节。 如果配置文件存在错误,那么可能会导致无法正常连接到MySQL服务器。我们可以尝试修改这个文件,并重启MySQL服务器来解决问题。 下面是一个简单的配置文件示例: ini [mysqld] port=3306 log-error=/var/log/mysql/error.log datadir=/var/lib/mysql 在这个配置文件中,我们设置了MySQL服务器监听的端口号为3306,日志文件路径为/var/log/mysql/error.log,数据目录为/var/lib/mysql。 三、问题三 MySQL数据库账户权限不足 在连接MySQL数据库时,我们通常需要提供一个数据库用户名和密码。如果我们提供的账号没有足够的权限,那么可能会导致连接失败。 解决方法是登录到MySQL服务器,然后使用GRANT命令来给指定的账号赋予相应的权限。 例如,我们可以使用以下命令来给用户testuser赋予对所有数据库的所有操作权限: sql GRANT ALL PRIVILEGES ON . TO 'testuser'@'localhost' IDENTIFIED BY 'password'; 在这个命令中,ALL PRIVILEGES表示赋予所有的权限,.表示所有数据库的所有表,'localhost'表示从本地主机连接,'password'是用户的密码。 四、问题四 防火墙设置阻止了连接 如果我们的Linux系统的防火墙设置阻止了外部连接,那么我们也无法连接到MySQL服务器。 解决方法是检查防火墙的规则,确保它允许MySQL服务器监听的端口(通常是3306)对外部连接。 我们可以通过以下命令来查看防火墙的规则: bash sudo iptables -L -n -t filter --line-numbers 如果输出中没有包含3306端口,那么我们可以使用以下命令来添加规则: bash sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT 在这个命令中,-p tcp表示只处理TCP协议的连接请求,--dport 3306表示目标端口号为3306,-j ACCEPT表示接受该连接请求。 总结一下,虽然在Linux系统上连接MySQL数据库可能会遇到一些问题,但只要我们了解并熟悉这些问题的原因,就很容易找到解决方案。希望这篇文章能够帮助你更好地理解和解决Linux下连接MySQL数据库的问题。
2023-03-28 20:22:57
162
柳暗花明又一村-t
转载文章
...内容。 Linux Mysql 搭建 systemctl stop firewalld 停止防火墙服务systemctl disable firewalld 禁止防火墙服务开机自启动sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux // 将 selinux文件中的SELINUX值修改为disabledwget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_aarch64.repo 增加openEulerOS.repo yum clean all 清除之前的所有仓库缓存yum makecache 生成软件包信息缓存,以提高搜索安装软件的速度dnf install mysqlmkdir /var/lib/mysql // 在 /var/lib 目录下创建一个mysql 目录cd /var/lib/mysql/ // 切换到这个目录mkdir data tmp run log // 在 mysql目录下 创建 data, tmp,run,log 四个子目录touch /var/lib/mysql/log/mysql.log // 在log 目录下 创建mysql.log空文件chown -R mysql:mysql /var/lib/mysql/ // 将 mysql目录下的所有文件 所有者及群组都设为 mysqlrm -f /etc/my.cnf// 将一些信息导入到 my.cnf 中echo -e "[mysqld_safe]\nlog-error=/var/lib/mysql/log/mysql.log\npid-file=/var/lib/mysql/run/mysqld.pid\n\n[mysqldump]\nquick\n\n[mysql]\nno-auto-rehash\n\n[client]\nport=3306\nmax_allowed_packet=64M\ndefault-character-set=utf8\n\n[mysqld]\nuser=root\nport=3306\nbasedir=/usr/local/mysql\nsocket=/var/lib/mysql/run/mysql.sock\ntmpdir=/var/lib/mysql/tmp\ndatadir=/var/lib/mysql/data\ndefault_authentication_plugin=mysql_native_password\nskip-grant-tables\nkey_buffer_size=16M" > /etc/my.cnfcat /etc/my.cnf // 查看文件内容chown mysql:mysql /etc/my.cnf // 将该文件的所有者及群组 都设为 mysqlll /etc/my.cnfchmod 777 /usr/local/mysql/support-files/mysql.server //对mysql.server的所有者,群组,其他用户设置读,写,执行,权限cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlchkconfig mysql on // 开机自动启动chown -R mysql:mysql /etc/init.d/mysqlvi /etc/profile // 把 export PATH=$PATH:/usr/local/mysql/bin 放到文件尾端,设置环境变量source /etc/profile // 重新执行刚修改的文件,使之立即生效env // 显示系统的环境变量mysqld --defaults-file=/etc/my.cnf --initializechown -R mysql:mysql /var/lib/mysql/datall /var/lib/mysql/dataservice mysql startservice mysql status // 查看服务状态ps -ef | grep mysqlnetstat -anptnetstat -anpt | grep mysqlnetstat -anpt | grep 3306 显示有关mysql的进程mysql -u root -p -S /var/lib/mysql/run/mysql.sock // 输入密码进入到了mysqlalter user 'root'@'localhost' identified by "123456";flush privileges;create user 'user'@'%' identified by '123456';grant all privileges on . to 'user'@'%' with grant option;flush privileges;select user,host from mysql.user; service mysql stop 停止服务\q回到命令行vi /etc/ld.so.confldconfig 搜索出可共享的动态链接库(格式如lib.so),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cacheln -s /var/ldconfiglib/mysql/run/mysql.sock /tmp/mysql.sock 建立软连接 service 和 chkconfig 都可以用 systemctl 来代替 遇到 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) service mysql stop // 先停用ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock // 建立软连接vi /etc/my.cnf // 修改里面的 socket 路径service mysql start // 重启 Linux chmod 命令 Linux文件的所有者、群组和其他人 本篇文章为转载内容。原文链接:https://blog.csdn.net/qq_53318060/article/details/121664128。 该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。 作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。 如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。
2023-05-24 19:00:46
119
转载
MySQL
怎么查看MySQL数据库IP?手把手教你找到数据库的“家” 嗨,朋友们!今天咱们来聊聊一个超级实用的小问题——怎么查看MySQL数据库的IP地址。这事儿看起来简单,但其实背后藏着不少门道。嘿,作为一个在数据库这条路上摸爬滚打多年的老鸟,我觉得是时候跟大家唠唠这个事儿了! 首先,咱们得搞清楚为什么需要知道MySQL数据库的IP地址。其实,这个问题的答案可能因人而异。嘿,有的人捣鼓服务器连接,有的人在查网络为啥出问题,还有一堆人就单纯想搞清楚自己鼓捣出来的数据库到底“住”在哪儿,就跟想知道自家小宠物被关在哪间房一样好奇!不管你到底是为了啥,能整清楚数据库的那个IP地址,这本事可真挺关键的!那么接下来,咱们就一步步来解决这个问题! --- 1. 本地MySQL数据库的IP地址 情况一:数据库运行在你的电脑上 如果你的MySQL数据库是安装在你自己的机器上,并且你只打算让它服务于本地的应用程序,那么它的IP地址通常就是localhost或者127.0.0.1。这是最常见的情况之一,也是初学者最容易遇到的场景。 如何确认? 打开命令行工具(Windows用户可以用CMD,Mac/Linux用户可以用Terminal),然后输入以下命令: sql SELECT @@hostname; 这条SQL语句会返回当前MySQL服务器所在的主机名。如果你想进一步验证是不是本地环境,可以再试试: sql SELECT @@datadir; 这段代码会显示MySQL的数据目录路径。要是文件路径里提到你的用户名,或者用的是系统盘符(像 C:\ProgramData\MySQL\MySQL Server 8.0\Data 这种),那十有八九数据库就在你自己的电脑上啦! --- 情况二:数据库运行在远程服务器上 如果你的MySQL数据库部署在一台远程服务器上,那么它的IP地址就不会是localhost了。你需要通过一些工具或者命令来获取具体的IP地址。 方法一:直接登录服务器查看 假设你有一台Linux服务器,可以通过SSH工具(比如PuTTY或终端)登录到服务器后,执行以下命令: bash ifconfig | grep "inet " 这段命令会列出服务器的所有网络接口及其对应的IP地址。如果你看到类似inet 192.168.1.100这样的输出,恭喜你,这就是MySQL数据库所在服务器的IP地址啦! 方法二:通过MySQL命令查看 如果你已经成功连接到了远程MySQL服务器,也可以在MySQL客户端中执行以下命令: sql SELECT @@hostname; 这条命令同样会返回数据库所在的主机名。不过,这里得到的通常是服务器的域名(比如myserver.example.com)。为了找到真实的IP地址,你可以使用ping命令进行测试: bash ping myserver.example.com 通过这种方式,你可以轻松地将域名解析为实际的IP地址。 --- 2. MySQL配置文件中的IP地址 有时候,数据库的IP地址并不是动态分配的,而是明确写在了配置文件里。这种情况下,我们只需要找到配置文件的位置并读取它即可。 配置文件在哪里? 不同的操作系统和安装方式可能会导致配置文件的位置有所不同。以下是常见的几个位置: - Linux/Unix系统:通常是/etc/mysql/my.cnf或者/etc/my.cnf。 - Windows系统:可能是C:\ProgramData\MySQL\MySQL Server 8.0\my.ini。 - macOS:可以尝试查找/usr/local/mysql/my.cnf。 打开配置文件后,搜索关键词bind-address。这个参数定义了MySQL服务监听的IP地址。例如: ini bind-address = 192.168.1.100 这里的192.168.1.100就是MySQL数据库的IP地址。如果该值为空,则表示MySQL监听所有可用的IP地址。 --- 3. 使用第三方工具检测数据库IP 如果你没有权限直接访问服务器或者配置文件,还可以借助一些第三方工具来探测数据库的IP地址。 工具推荐: 1. Nmap 一款强大的网络扫描工具,可以帮助你发现目标服务器上的开放端口和服务。 bash nmap -p 3306 yourdomain.com 如果MySQL服务正在运行并且监听了外部请求,那么这段命令会显示出相应的IP地址。 2. telnet 一种简单的远程连接工具,用于检查特定端口是否可达。 bash telnet yourdomain.com 3306 如果连接成功,说明MySQL服务正在指定的IP地址上运行。 --- 4. 小结与反思 经过一番折腾,我们终于找到了MySQL数据库的IP地址。虽然过程有些曲折,但我相信这些方法对大家来说都非常实用。在这个过程中,我也学到了很多新东西,比如如何解读配置文件、如何利用命令行工具解决问题等等。 最后想提醒大家一句:无论你是新手还是老鸟,在操作数据库时都要小心谨慎,尤其是在涉及网络配置的时候。毕竟,稍不留神就可能导致数据泄露或者其他严重后果。所以,动手之前一定要三思而后行哦! 好了,今天的分享就到这里啦!如果你还有什么疑问或者更好的解决方案,欢迎随时留言交流。咱们下期再见!
2025-03-24 15:46:41
78
笑傲江湖
MySQL
MySQL日志中有大量的这个错误该怎么办? 1. 看到错误日志时的慌乱与冷静 作为一个数据库运维人员,每天面对着各种各样的问题,而当看到MySQL的日志文件里充满了大量的错误信息时,我的第一反应通常是——“天啊!这是什么情况?”尤其是在半夜加班的时候,这种感觉尤其强烈。 不过,作为一名资深的技术人,我很快意识到,慌张解决不了任何问题。咱们先别急着慌,坐下来好好琢磨琢磨这些错误到底是啥意思,到底是咋冒出来的,然后想想接下来该怎么处理才好。于是,我开始仔细阅读日志内容,并尝试重现这些错误。 比如,最近我在维护的一个生产环境下的MySQL服务器上,突然发现日志里出现了大量这样的错误信息: [ERROR] InnoDB: Operating system error number 24 in a file operation. 这让我有点懵,因为我之前从未遇到过类似的错误。所以,我决定深入研究一下这个问题,看看能不能找到解决方案。 --- 2. 错误日志解读 从表面现象到本质原因 首先,我需要弄清楚这个错误到底意味着什么。我翻了翻官方文档,又逛了逛一些社区论坛,感觉这错误八成跟操作系统里的文件操作有关系。具体来说,错误号24在Linux系统中表示“Too many open files”(打开的文件太多)。 这让我立刻联想到,可能是因为MySQL的某些进程打开了过多的文件句柄,导致操作系统限制了它进一步的操作。为了验证这一点,我执行了一个简单的命令来检查当前系统的文件描述符限制: bash ulimit -n 结果显示默认值为1024。这意味着每个进程最多只能同时打开1024个文件。说实话,咱们的MySQL实例现在正忙着应付一大堆同时连进来的需求,还得折腾临时表呢。这么一看,那个限制就跟挠痒痒似的——太不够用了! 接下来,我查看了MySQL的配置文件my.cnf,发现确实没有显式设置文件描述符的上限。于是,我修改了配置文件,将open_files_limit参数调整为更大的值: ini [mysqld] open_files_limit=65535 然后重启了MySQL服务,再次检查日志,果然,错误消失了! --- 3. 实践中的代码调试与优化 当然,仅仅解决问题还不够,我还想进一步优化整个系统的性能。于是,我编写了一些脚本来监控MySQL的运行状态,特别是文件描述符的使用情况。 以下是一个简单的Python脚本,用于统计MySQL当前使用的文件描述符数量: python import psutil import subprocess def get_mysql_open_files(): 获取所有MySQL进程ID mysql_pids = [] result = subprocess.run(['pgrep', 'mysqld'], capture_output=True, text=True) for line in result.stdout.splitlines(): mysql_pids.append(int(line)) total_open_files = 0 for pid in mysql_pids: try: proc = psutil.Process(pid) open_files = len(proc.open_files()) print(f"Process {pid} has opened {open_files} files.") total_open_files += open_files except Exception as e: print(f"Error checking process {pid}: {e}") print(f"Total open files by MySQL processes: {total_open_files}") if __name__ == "__main__": get_mysql_open_files() 运行这个脚本后,我发现某些特定的查询会导致文件描述符迅速增加。经过分析,这些问题主要出现在涉及大文件读写的场景中。所以呢,我觉得咱们开发的小伙伴们得好好捯饬捯饬这些查询语句啦!比如说,能不能少建那些没用的临时表啊?再比如,能不能换个更快的存储引擎啥的?反正就是得让这个程序跑得更顺畅些,别老是卡在那里干瞪眼不是? --- 4. 总结与反思 从问题中学到的东西 回顾这次经历,我深刻体会到,处理数据库问题时,不能仅凭直觉行事,而是要结合实际数据和技术手段,逐步排查问题的根本原因。同时,我也认识到,预防胜于治疗。如果能在日常运维中提前做好监控和预警,就可以避免很多突发状况。 最后,我想分享一点个人感悟:技术之路永无止境,每一次遇到难题都是一次成长的机会。说实话,有时候真的会觉得头大,甚至怀疑自己是不是走错了路。但我觉得啊,这就好比在黑暗里找钥匙,你得不停地摸索、试错才行。只要别轻易放弃,一直在学、一直在练,总有一天你会发现,“!原来它在这儿呢!”就跟我在处理这个MySQL报错的时候似的,最后不光把问题搞定了,还顺带学了不少实用的招儿呢! 如果你也遇到了类似的情况,不妨试试上面提到的方法,也许能帮到你!
2025-04-17 16:17:44
109
山涧溪流_
转载文章
....csdn.net/mywpython/article/details/89499852。 该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。 作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。 如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。 Other default tuning values 其他默认调优值 MySQL Server Instance Configuration File MySQL服务器实例配置文件 ---------------------------------------------------------------------- Generated by the MySQL Server Instance Configuration Wizard 由MySQL服务器实例配置向导生成 Installation Instructions 安装说明 ---------------------------------------------------------------------- On Linux you can copy this file to /etc/my.cnf to set global options, mysql-data-dir/my.cnf to set server-specific options (@localstatedir@ for this installation) or to ~/.my.cnf to set user-specific options. 在Linux上,您可以将该文件复制到/etc/my.cnf来设置全局选项,mysql-data-dir/my.cnf来设置特定于服务器的选项(此安装的@localstatedir@),或者~/.my.cnf来设置特定于用户的选项。 On Windows you should keep this file in the installation directory of your server (e.g. C:\Program Files\MySQL\MySQL Server X.Y). To make sure the server reads the config file use the startup option "--defaults-file". 在Windows上你应该保持这个文件在服务器的安装目录(例如C:\Program Files\MySQL\MySQL服务器X.Y)。要确保服务器读取配置文件,请使用启动选项“——default -file”。 To run the server from the command line, execute this in a command line shell, e.g. mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini" 要从命令行运行服务器,请在命令行shell中执行,例如mysqld——default -file="C:\Program Files\MySQL\MySQL server X.Y\my.ini" To install the server as a Windows service manually, execute this in a command line shell, e.g. mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini" 要手动将服务器安装为Windows服务,请在命令行shell中执行此操作,例如mysqld——install MySQLXY——default -file="C:\Program Files\MySQL\MySQL server X.Y\my.ini" And then execute this in a command line shell to start the server, e.g. net start MySQLXY 然后在命令行shell中执行这个命令来启动服务器,例如net start MySQLXY Guidelines for editing this file编辑此文件的指南 ---------------------------------------------------------------------- In this file, you can use all long options that the program supports. If you want to know the options a program supports, start the program with the "--help" option. 在这个文件中,您可以使用程序支持的所有长选项。如果您想知道程序支持的选项,请使用“——help”选项启动程序。 More detailed information about the individual options can also be found in the manual. For advice on how to change settings please see https://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html 有关各个选项的更详细信息也可以在手册中找到。有关如何更改设置的建议,请参见https://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html CLIENT SECTION 客户端部分 ---------------------------------------------------------------------- The following options will be read by MySQL client applications. Note that only client applications shipped by MySQL are guaranteed to read this section. If you want your own MySQL client program to honor these values, you need to specify it as an option during the MySQL client library initialization. MySQL客户机应用程序将读取以下选项。注意,只有MySQL提供的客户端应用程序才能阅读本节。如果您希望自己的MySQL客户机程序遵守这些值,您需要在初始化MySQL客户机库时将其指定为一个选项。 [client] pipe= socket=MYSQL port=3306 [mysql] no-beep default-character-set= SERVER SECTION 服务器部分 ---------------------------------------------------------------------- The following options will be read by the MySQL Server. Make sure that you have installed the server correctly (see above) so it reads this file. MySQL服务器将读取以下选项。确保您已经正确安装了服务器(参见上面),以便它读取这个文件。 server_type=3 [mysqld] The next three options are mutually exclusive to SERVER_PORT below. 下面的三个选项对SERVER_PORT是互斥的。skip-networking enable-named-pipe 共享内存 skip-networking enable-named-pipe shared-memory shared-memory-base-name=MYSQL The Pipe the MySQL Server will use socket=MYSQL The TCP/IP Port the MySQL Server will listen on port=3306 Path to installation directory. All paths are usually resolved relative to this. basedir="C:/Program Files/MySQL/MySQL Server 8.0/" Path to the database root datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data The default character set that will be used when a new schema or table is created and no character set is defined 创建新模式或表时使用的默认字符集,并且没有定义字符集 character-set-server= The default authentication plugin to be used when connecting to the server 连接到服务器时使用的默认身份验证插件 default_authentication_plugin=caching_sha2_password The default storage engine that will be used when create new tables when 当创建新表时将使用的默认存储引擎 default-storage-engine=INNODB Set the SQL mode to strict 将SQL模式设置为strict sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" General and Slow logging. 一般和缓慢的日志。 log-output=NONE general-log=0 general_log_file="DESKTOP-NF9QETB.log" slow-query-log=0 slow_query_log_file="DESKTOP-NF9QETB-slow.log" long_query_time=10 Binary Logging. 二进制日志。 log-bin Error Logging. 错误日志记录。 log-error="DESKTOP-NF9QETB.err" Server Id. server-id=1 Indicates how table and database names are stored on disk and used in MySQL. 指示表名和数据库名如何存储在磁盘上并在MySQL中使用。 Value = 0: Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement. Name comparisons are case sensitive. You should not set this variable to 0 if you are running MySQL on a system that has case-insensitive file names (such as Windows or macOS). Value = 0:表名和数据库名使用CREATE Table或CREATE database语句中指定的lettercase存储在磁盘上。名称比较区分大小写。如果您在一个具有不区分大小写文件名(如Windows或macOS)的系统上运行MySQL,则不应将该变量设置为0。 Value = 1: Table names are stored in lowercase on disk and name comparisons are not case-sensitive. MySQL converts all table names to lowercase on storage and lookup. This behavior also applies to database names and table aliases. 表名以小写存储在磁盘上,并且名称比较不区分大小写。MySQL在存储和查找时将所有表名转换为小写。此行为也适用于数据库名称和表别名。 Value = 3, Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement, but MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive. This works only on file systems that are not case-sensitive! InnoDB table names and view names are stored in lowercase, as for Value = 1.表名和数据库名使用CREATE Table或CREATE database语句中指定的lettercase存储在磁盘上,但是MySQL在查找时将它们转换为小写。名称比较不区分大小写。这只适用于不区分大小写的文件系统!InnoDB表名和视图名以小写存储,Value = 1。 NOTE: lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after the server is initialized is prohibited. lower_case_table_names=1 Secure File Priv. 权限安全文件 secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads" The maximum amount of concurrent sessions the MySQL server will allow. One of these connections will be reserved for a user with SUPER privileges to allow the administrator to login even if the connection limit has been reached. MySQL服务器允许的最大并发会话量。这些连接中的一个将保留给具有超级特权的用户,以便允许管理员登录,即使已经达到连接限制。 max_connections=151 The number of open tables for all threads. Increasing this value increases the number of file descriptors that mysqld requires. Therefore you have to make sure to set the amount of open files allowed to at least 4096 in the variable "open-files-limit" in 为所有线程打开的表的数量。增加这个值会增加mysqld需要的文件描述符的数量。因此,您必须确保在[mysqld_safe]节中的变量“open-files-limit”中将允许打开的文件数量至少设置为4096 section [mysqld_safe] table_open_cache=2000 Maximum size for internal (in-memory) temporary tables. If a table grows larger than this value, it is automatically converted to disk based table This limitation is for a single table. There can be many of them. 内部(内存)临时表的最大大小。如果一个表比这个值大,那么它将自动转换为基于磁盘的表。可以有很多。 tmp_table_size=94M How many threads we should keep in a cache for reuse. When a client disconnects, the client's threads are put in the cache if there aren't more than thread_cache_size threads from before. This greatly reduces the amount of thread creations needed if you have a lot of new connections. (Normally this doesn't give a notable performance improvement if you have a good thread implementation.) 我们应该在缓存中保留多少线程以供重用。当客户机断开连接时,如果之前的线程数不超过thread_cache_size,则将客户机的线程放入缓存。如果您有很多新连接,这将大大减少所需的线程创建量(通常,如果您有一个良好的线程实现,这不会带来显著的性能改进)。 thread_cache_size=10 MyISAM Specific options The maximum size of the temporary file MySQL is allowed to use while recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE. If the file-size would be bigger than this, the index will be created through the key cache (which is slower). MySQL允许在重新创建索引时(在修复、修改表或加载数据时)使用临时文件的最大大小。如果文件大小大于这个值,那么索引将通过键缓存创建(这比较慢)。 myisam_max_sort_file_size=100G If the temporary file used for fast index creation would be bigger than using the key cache by the amount specified here, then prefer the key cache method. This is mainly used to force long character keys in large tables to use the slower key cache method to create the index. myisam_sort_buffer_size=179M Size of the Key Buffer, used to cache index blocks for MyISAM tables. Do not set it larger than 30% of your available memory, as some memory is also required by the OS to cache rows. Even if you're not using MyISAM tables, you should still set it to 8-64M as it will also be used for internal temporary disk tables. 如果用于快速创建索引的临时文件比这里指定的使用键缓存的文件大,则首选键缓存方法。这主要用于强制大型表中的长字符键使用较慢的键缓存方法来创建索引。 key_buffer_size=8M Size of the buffer used for doing full table scans of MyISAM tables. Allocated per thread, if a full scan is needed. 用于对MyISAM表执行全表扫描的缓冲区的大小。如果需要完整的扫描,则为每个线程分配。 read_buffer_size=256K read_rnd_buffer_size=512K INNODB Specific options INNODB特定选项 innodb_data_home_dir= Use this option if you have a MySQL server with InnoDB support enabled but you do not plan to use it. This will save memory and disk space and speed up some things. 如果您启用了一个支持InnoDB的MySQL服务器,但是您不打算使用它,那么可以使用这个选项。这将节省内存和磁盘空间,并加快一些事情。skip-innodb skip-innodb If set to 1, InnoDB will flush (fsync) the transaction logs to the disk at each commit, which offers full ACID behavior. If you are willing to compromise this safety, and you are running small transactions, you may set this to 0 or 2 to reduce disk I/O to the logs. Value 0 means that the log is only written to the log file and the log file flushed to disk approximately once per second. Value 2 means the log is written to the log file at each commit, but the log file is only flushed to disk approximately once per second. 如果设置为1,InnoDB将在每次提交时将事务日志刷新(fsync)到磁盘,这将提供完整的ACID行为。如果您愿意牺牲这种安全性,并且正在运行小型事务,您可以将其设置为0或2,以将磁盘I/O减少到日志。值0表示日志仅写入日志文件,日志文件大约每秒刷新一次磁盘。值2表示日志在每次提交时写入日志文件,但是日志文件大约每秒只刷新一次磁盘。 innodb_flush_log_at_trx_commit=1 The size of the buffer InnoDB uses for buffering log data. As soon as it is full, InnoDB will have to flush it to disk. As it is flushed once per second anyway, it does not make sense to have it very large (even with long transactions).InnoDB用于缓冲日志数据的缓冲区大小。一旦它满了,InnoDB就必须将它刷新到磁盘。由于它无论如何每秒刷新一次,所以将它设置为非常大的值是没有意义的(即使是长事务)。 innodb_log_buffer_size=5M InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and row data. The bigger you set this the less disk I/O is needed to access data in tables. On a dedicated database server you may set this parameter up to 80% of the machine physical memory size. Do not set it too large, though, because competition of the physical memory may cause paging in the operating system. Note that on 32bit systems you might be limited to 2-3.5G of user level memory per process, so do not set it too high. 与MyISAM不同,InnoDB使用缓冲池来缓存索引和行数据。设置的值越大,访问表中的数据所需的磁盘I/O就越少。在专用数据库服务器上,可以将该参数设置为机器物理内存大小的80%。但是,不要将它设置得太大,因为物理内存的竞争可能会导致操作系统中的分页。注意,在32位系统上,每个进程的用户级内存可能被限制在2-3.5G,所以不要设置得太高。 innodb_buffer_pool_size=20M Size of each log file in a log group. You should set the combined size of log files to about 25%-100% of your buffer pool size to avoid unneeded buffer pool flush activity on log file overwrite. However, note that a larger logfile size will increase the time needed for the recovery process. 日志组中每个日志文件的大小。您应该将日志文件的合并大小设置为缓冲池大小的25%-100%,以避免在覆盖日志文件时出现不必要的缓冲池刷新活动。但是,请注意,较大的日志文件大小将增加恢复过程所需的时间。 innodb_log_file_size=48M Number of threads allowed inside the InnoDB kernel. The optimal value depends highly on the application, hardware as well as the OS scheduler properties. A too high value may lead to thread thrashing. InnoDB内核中允许的线程数。最优值在很大程度上取决于应用程序、硬件以及OS调度程序属性。过高的值可能导致线程抖动。 innodb_thread_concurrency=9 The increment size (in MB) for extending the size of an auto-extend InnoDB system tablespace file when it becomes full. 增量大小(以MB为单位),用于在表空间满时扩展自动扩展的InnoDB系统表空间文件的大小。 innodb_autoextend_increment=128 The number of regions that the InnoDB buffer pool is divided into. For systems with buffer pools in the multi-gigabyte range, dividing the buffer pool into separate instances can improve concurrency, by reducing contention as different threads read and write to cached pages. InnoDB缓冲池划分的区域数。对于具有多gb缓冲池的系统,将缓冲池划分为单独的实例可以提高并发性,因为不同的线程对缓存页面的读写会减少争用。 innodb_buffer_pool_instances=8 Determines the number of threads that can enter InnoDB concurrently. 确定可以同时进入InnoDB的线程数 innodb_concurrency_tickets=5000 Specifies how long in milliseconds (ms) a block inserted into the old sublist must stay there after its first access before it can be moved to the new sublist. 指定插入到旧子列表中的块必须在第一次访问之后停留多长时间(毫秒),然后才能移动到新子列表。 innodb_old_blocks_time=1000 It specifies the maximum number of .ibd files that MySQL can keep open at one time. The minimum value is 10. 它指定MySQL一次可以打开的.ibd文件的最大数量。最小值是10。 innodb_open_files=300 When this variable is enabled, InnoDB updates statistics during metadata statements. 当启用此变量时,InnoDB会在元数据语句期间更新统计信息。 innodb_stats_on_metadata=0 When innodb_file_per_table is enabled (the default in 5.6.6 and higher), InnoDB stores the data and indexes for each newly created table in a separate .ibd file, rather than in the system tablespace. 当启用innodb_file_per_table(5.6.6或更高版本的默认值)时,InnoDB将每个新创建的表的数据和索引存储在单独的.ibd文件中,而不是系统表空间中。 innodb_file_per_table=1 Use the following list of values: 0 for crc32, 1 for strict_crc32, 2 for innodb, 3 for strict_innodb, 4 for none, 5 for strict_none. 使用以下值列表:0表示crc32, 1表示strict_crc32, 2表示innodb, 3表示strict_innodb, 4表示none, 5表示strict_none。 innodb_checksum_algorithm=0 The number of outstanding connection requests MySQL can have. This option is useful when the main MySQL thread gets many connection requests in a very short time. It then takes some time (although very little) for the main thread to check the connection and start a new thread. The back_log value indicates how many requests can be stacked during this short time before MySQL momentarily stops answering new requests. You need to increase this only if you expect a large number of connections in a short period of time. MySQL可以有多少未完成连接请求。当MySQL主线程在很短的时间内收到许多连接请求时,这个选项非常有用。然后,主线程需要一些时间(尽管很少)来检查连接并启动一个新线程。back_log值表示在MySQL暂时停止响应新请求之前的短时间内可以堆多少个请求。只有当您预期在短时间内会有大量连接时,才需要增加这个值。 back_log=80 If this is set to a nonzero value, all tables are closed every flush_time seconds to free up resources and synchronize unflushed data to disk. This option is best used only on systems with minimal resources. 如果将该值设置为非零值,则每隔flush_time秒关闭所有表,以释放资源并将未刷新的数据同步到磁盘。这个选项最好只在资源最少的系统上使用。 flush_time=0 The minimum size of the buffer that is used for plain index scans, range index scans, and joins that do not use 用于普通索引扫描、范围索引扫描和不使用索引执行全表扫描的连接的缓冲区的最小大小。 indexes and thus perform full table scans. join_buffer_size=200M The maximum size of one packet or any generated or intermediate string, or any parameter sent by the mysql_stmt_send_long_data() C API function. 由mysql_stmt_send_long_data() C API函数发送的一个包或任何生成的或中间字符串或任何参数的最大大小 max_allowed_packet=500M If more than this many successive connection requests from a host are interrupted without a successful connection, the server blocks that host from performing further connections. 如果在没有成功连接的情况下中断了来自主机的多个连续连接请求,则服务器将阻止主机执行进一步的连接。 max_connect_errors=100 Changes the number of file descriptors available to mysqld. You should try increasing the value of this option if mysqld gives you the error "Too many open files". 更改mysqld可用的文件描述符的数量。如果mysqld给您的错误是“打开的文件太多”,您应该尝试增加这个选项的值。 open_files_limit=4161 If you see many sort_merge_passes per second in SHOW GLOBAL STATUS output, you can consider increasing the sort_buffer_size value to speed up ORDER BY or GROUP BY operations that cannot be improved with query optimization or improved indexing. 如果在SHOW GLOBAL STATUS输出中每秒看到许多sort_merge_passes,可以考虑增加sort_buffer_size值,以加快ORDER BY或GROUP BY操作的速度,这些操作无法通过查询优化或改进索引来改进。 sort_buffer_size=1M The number of table definitions (from .frm files) that can be stored in the definition cache. If you use a large number of tables, you can create a large table definition cache to speed up opening of tables. The table definition cache takes less space and does not use file descriptors, unlike the normal table cache. The minimum and default values are both 400. 可以存储在定义缓存中的表定义的数量(来自.frm文件)。如果使用大量表,可以创建一个大型表定义缓存来加速表的打开。与普通的表缓存不同,表定义缓存占用更少的空间,并且不使用文件描述符。最小值和默认值都是400。 table_definition_cache=1400 Specify the maximum size of a row-based binary log event, in bytes. Rows are grouped into events smaller than this size if possible. The value should be a multiple of 256. 指定基于行的二进制日志事件的最大大小,单位为字节。如果可能,将行分组为小于此大小的事件。这个值应该是256的倍数。 binlog_row_event_max_size=8K If the value of this variable is greater than 0, a replication slave synchronizes its master.info file to disk. (using fdatasync()) after every sync_master_info events. 如果该变量的值大于0,则复制奴隶将其主.info文件同步到磁盘。(在每个sync_master_info事件之后使用fdatasync())。 sync_master_info=10000 If the value of this variable is greater than 0, the MySQL server synchronizes its relay log to disk. (using fdatasync()) after every sync_relay_log writes to the relay log. 如果这个变量的值大于0,MySQL服务器将其中继日志同步到磁盘。(在每个sync_relay_log写入到中继日志之后使用fdatasync())。 sync_relay_log=10000 If the value of this variable is greater than 0, a replication slave synchronizes its relay-log.info file to disk. (using fdatasync()) after every sync_relay_log_info transactions. 如果该变量的值大于0,则复制奴隶将其中继日志.info文件同步到磁盘。(在每个sync_relay_log_info事务之后使用fdatasync())。 sync_relay_log_info=10000 Load mysql plugins at start."plugin_x ; plugin_y". 开始时加载mysql插件。“plugin_x;plugin_y” plugin_load The TCP/IP Port the MySQL Server X Protocol will listen on. MySQL服务器X协议将监听TCP/IP端口。 loose_mysqlx_port=33060 本篇文章为转载内容。原文链接:https://blog.csdn.net/mywpython/article/details/89499852。 该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。 作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。 如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。
2023-10-08 09:56:02
129
转载
站内搜索
用于搜索本网站内部文章,支持栏目切换。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
chmod u+x,g-w,o-r file
- 修改文件权限为:用户可执行、组无写入、其他无读取。
推荐内容
推荐本栏目内的其它文章,看看还有哪些文章让你感兴趣。
2023-04-28
2023-08-09
2023-06-18
2023-04-14
2023-02-18
2023-04-17
2024-01-11
2023-10-03
2023-09-09
2023-06-13
2023-08-07
2023-03-11
历史内容
快速导航到对应月份的历史文章列表。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"