MySQL 安装配置与常用操作


一、查看表字段信息

通过查询 INFORMATION_SCHEMA.COLUMNS 表,可以快速定位包含特定注释的字段。

SELECT TABLE_NAME, COLUMN_NAME, COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_COMMENT LIKE '%估值%'
  AND TABLE_SCHEMA = 'shujujiance';

说明

  • COLUMN_COMMENT LIKE '%估值%' 替换为目标关键词,即可查找相关字段。
  • TABLE_SCHEMA 指定数据库名,可按需修改。
  • 如需要查看全部字段信息,可将 SELECT 部分改为 SELECT *

二、MySQL 数据导出与导入

1. 使用脚本导出指定库表

创建脚本 sync.sh,用法:sh sync.sh database table

#!/bin/sh
databases=$1
tables=$2
tableSqlPath="/data/slavesh/mysqlback/table-$(date +%Y%m%d%H).sql"

echo "use ${databases};" > "$tableSqlPath"
/alidata/server/mysql/bin/mysqldump -h1.1.1.1 -uroot -ppwd "$databases" "$tables" >> "$tableSqlPath"
dump_status=$?

if [ $dump_status -eq 0 ]; then
    echo "数据库导出成功"
else
    echo "数据库导出失败"
    exit 1
fi

说明

  • 脚本会在指定路径生成带时间戳的 SQL 文件,并自动添加 use database; 语句。
  • 导出成功后,可通过 source 命令导入。

导入方法

mysql -u root -p
use database;
source /path/to/生成的sql文件路径;

2. 手动导出导入命令

导出整个数据库

/alidata/server/mysql/bin/mysqldump -u root -p --databases spiderdata > spiderdata.sql

压缩与传输

tar -czvf spiderdata_new.tar.gz spiderdata.sql
scp spiderdata_new.tar.gz root@1.1.1.1:/alidata/

解压与导入

tar -xvzf spiderdata_new.tar.gz
mysql -u root -p
use spiderdata;
source /home/spiderdata.sql;

三、MySQL 配置参考

以下配置来自生产环境,适用于 MySQL 5.7,可根据硬件资源调整。

[mysqld]
wait_timeout=1000
interactive_timeout=1000
user            = mysql
basedir         = /alidata/server/mysql
port            = 3306
socket          = /tmp/mysql.sock
datadir         = /alidata/server/mysql/data
pid-file        = /alidata/server/mysql/data/localhost.localdomain.pid
skip-external-locking
log-error=/alidata/log/mysql/error.log
server-id       = 100
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
log-bin=mysql-bin
binlog_format=ROW
#read_only=ON
sql_mode=STRICT_TRANS_TABLES

key_buffer_size = 256M
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 50M
innodb_autoextend_increment = 128M
innodb_log_buffer_size = 32M
innodb_log_file_size = 128M
bulk_insert_buffer_size = 128M
innodb_buffer_pool_size = 1G
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
max_allowed_packet = 512M

参数说明

  • wait_timeout / interactive_timeout:连接空闲超时时间,适当调大可减少连接断开。
  • server-id:主从复制时每台服务器必须唯一。
  • log-bin:开启二进制日志,用于复制和恢复。
  • binlog_format=ROW:推荐使用行级复制,减少主从不一致风险。
  • innodb_buffer_pool_size:InnoDB 缓冲池大小,设置为物理内存的 50%~70%。
  • max_allowed_packet:最大允许的数据包大小,避免大字段导入失败。
  • sql_mode:严格模式可提高数据一致性。

四、MySQL 5.7 安装步骤

1. 准备工作

2. 创建用户与目录

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
tar -xzvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql
cd mysql && mkdir data

3. 配置 my.cnf

备份默认配置:

mv /etc/my.cnf.d/ /etc/my.cnf.bak

编辑 /etc/my.cnf,示例如下(路径需根据实际调整):

[mysqld]
user            = mysql
basedir         = /data/server/mysql
port            = 3306
socket          = /tmp/mysql.sock
datadir         = /data/server/mysql/data
pid-file        = /data/server/mysql/data/localhost.localdomain.pid
log-error       = /data/log/mysql/error.log
server-id       = 100
table_open_cache = 2048
sort_buffer_size = 512K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
log-bin         = mysql-bin
binlog_format   = ROW
expire_logs_days= 30
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 50M
innodb_autoextend_increment = 128M
innodb_log_buffer_size = 32M
innodb_log_file_size = 128M
bulk_insert_buffer_size = 128M
innodb_buffer_pool_size = 10G
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
max_allowed_packet = 256M
group_concat_max_len = 102400
max_connections = 1000
join_buffer_size = 16M
tmp_table_size = 64M
slow_query_log = 1
slow_query_log_file = /data/log/mysql/slow.log
long_query_time = 1
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

4. 安装依赖(如报错)

若初始化时提示缺少 libaio.so.1

yum install libaio -y

5. 创建日志目录

mkdir -p /data/log/mysql
chown mysql:mysql /data/log/mysql

6. 初始化数据库

bin/mysqld --initialize --user=mysql

初始化完成后,在错误日志 /data/log/mysql/error.log 最后一行可找到临时密码,例如:

A temporary password is generated for root@localhost: DQ0kYKd?qowr

7. 配置启动脚本

cp support-files/mysql.server /etc/init.d/mysql.server

修改脚本中的 basedirdatadir 为实际路径。

8. 启动 MySQL

/etc/init.d/mysql.server start

设置开机自启:

echo "/etc/init.d/mysql.server start" >> /etc/rc.local

检查进程:

ps -aux | grep mysql

9. 修改默认密码

bin/mysql -uroot -p
# 输入临时密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

五、MySQL 5.6 安装脚本

以下为 MySQL 5.6 的自动化安装脚本,可根据实际环境修改路径。

#!/bin/bash
# 创建用户
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

# 初始化数据库
/hwdata/server/mysql/scripts/mysql_install_db --datadir=/hwdata/server/mysql/data/ --basedir=/hwdata/server/mysql --user=mysql
chown -R mysql:mysql /hwdata/server/mysql/
chown -R mysql:mysql /hwdata/server/mysql/data/
chown -R mysql:mysql /hwdata/log/mysql

# 复制启动脚本并修改路径
\cp -f /hwdata/server/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i 's#^basedir=$#basedir=/hwdata/server/mysql#' /etc/init.d/mysqld
sed -i 's#^datadir=$#datadir=/hwdata/server/mysql/data#' /etc/init.d/mysqld

# 生成配置文件
cat > /etc/my.cnf <<END
[client]
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-external-locking
log-error=/hwdata/log/mysql/error.log
key_buffer_size = 256M
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 50M
max_allowed_packet = 512M
innodb_autoextend_increment = 128M
innodb_log_buffer_size = 32M
innodb_log_file_size = 128M
bulk_insert_buffer_size = 128M
innodb_buffer_pool_size = 1G
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
binlog_format=ROW
server-id       = 100
explicit_defaults_for_timestamp=true
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
END

chmod 755 /etc/init.d/mysqld
/etc/init.d/mysqld start

常见问题
若执行 mysql_install_db 时报错:

FATAL ERROR: please install the following Perl modules before executing ... Data::Dumper

解决方法:

yum install -y perl-Data-Dumper libaio

初始化密码
5.6 首次登录无密码,直接回车进入后修改:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的密码');

5.7 及以上使用:

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

六、MySQL 权限配置

1. 允许 root 远程连接

USE mysql;
UPDATE user SET host = '%' WHERE user = 'root';
FLUSH PRIVILEGES;

2. 重新授权(兼容旧版本)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

注意:生产环境建议使用独立账号并限制权限,避免直接使用 root 远程登录。


posted @ 2026-09-08 18:37  BeginnerY  阅读(2)  评论(0)    收藏  举报