标签归档:mysql

windows中离线安装mysql

下载安装包

8.x版:https://dev.mysql.com/downloads/mysql/

5.x版:https://downloads.mysql.com/archives/community/

下载后解压到 d: 盘,要求打开 d:\mysql 后能看到 bin 目录。

安装 vcruntime140(可选)

x86: https://aka.ms/vs/17/release/vc_redist.x86.exe

x64: https://aka.ms/vs/17/release/vc_redist.x64.exe

环境配置

d:\mysql\bin 配置到用户环境 PATH 中。

配置 mysql.ini

注意:务必先打开显示文件扩展名!

在 mysql 目录下创建文件夹 data ,创建 my.ini 文件并粘贴以下内容:

[mysqld]
#设置3306端
port=3306
# MySQL程序安装目录
basedir=D:\mysql
# 数据库文件存放地址
datadir=D:\mysql\data 
#设置最大连接数
max_connections=512
#允许临时存放在查询缓存区大小
query_cache_size=0
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 数据库默认使用引擎
default-storage-engine=INNODB
[mysql]
# mysql客户端默认的字符集,5.7才有的,5.6以及之前的版本没有default-character-set属性
default-character-set=utf8mb4

安装 mysqld

以管理员身份运行CMD命令行,输入以下命令:

# 安装服务
mysqld -install
# 初始化数据库(注意观察生成的初始密码)
mysqld --initialize --user=mysql --console
# 启动mysql
net start mysql
# 修改密码为 123456(输入命令后会要求输入初始密码)
mysqladmin -uroot -p password 123456
# 登录
mysql -u root -p

至此安装完成。

docker 无法启动 mysql 容器可能的解决办法

启动 mysql:8.* 效果很好,但 mysql:5.7.* 会导致立即 100% 内存消耗,尝试通过以下方法解决。

方法1

  1. 编辑 /lib/systemd/system/containerd.service ,修改 LimitNOFILE=infinityLimitNOFILE=1048576
  2. sudo systemctl daemon-reload
  3. sudo systemctl restart containerd.service

再尝试启动 mysql 容器。

方法2

  1. 编辑 /etc/docker/daemon.json
{
    // 原有配置...
    "default-ulimits": {
        "nofile": {
            "Name": "nofile",
            "Hard": 64000,
            "Soft": 64000
        }
    }
}

2. 重启服务 systemctl restart docker

参考:https://sukbeta.github.io/docker-ulimit-configure/

mysql 5.7 无法使用 group by 的解决办法

出错的提示可能是这样的

[Err] 1055 – Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

解决办法

1、查看 sql_mode

select @@global.sql_mode;

2、查出来的值

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

3、去掉 ONLY_FULL_GROUP_BY ,重新设置值

set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

4、修改 my.cnf ,添加以下行

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;

设置的值和第3步的值一样,该操作要重启 mysql 服务。

MySQL 读写分离的主从数据库配置

准备两台服务器,都安装 mysql 服务器。主服务器称为 master, 从服务器称为 slave 。前提要设置好防火墙,保证网络通畅。

master 配置

配置 my.cnf

[mysqld]
#bind-address = 127.0.0.1    注释掉

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
relay_log = /var/log/mysql/mysql-relay-bin.log

继续阅读

centos7 安装 mysql

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum localinstall mysql57-community-release-el7-8.noarch.rpm
mysql-community-server

可以修改 /etc/yum.repos.d/mysql-community.repo 源,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的 enabled=1 改成 enabled=0 。然后再将5.6源的 enabled=0 改成 enabled=1 即可。

CentOS 7下yum安装MariaDB

CentOS 7下mysql下替换成MariaDB了。

把以下内容放到 /etc/yum.repos.d/MariaDB.repo 文件中

# MariaDB 10.4 CentOS repository list - created 2019-11-27 06:40 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

更多发行版:https://downloads.mariadb.org/mariadb/repositories/

安装

yum install mariadb mariadb-server
systemctl start mariadb   #启动mariadb
systemctl enable mariadb  #设置开机自启动
mysql_secure_installation #设置root密码等相关
mysql -uroot -p           #测试登录

phpmyadmin.pma_table_uiprefs doesn’t exist

在使用 phpmyadmin 管理 mysql 时,出现 phpmyadmin.pma_table_uiprefs doesn't exist ,快速解决办法如下:

  1. On the shell: locate create_tables.sql.
  2. import /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz using phpMyAdmin.
  3. open /etc/phpmyadmin/config.inc.php and edit lines 81-92: change pma_bookmark to pma__bookmark and so on.