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. 准备工作
- 确认数据盘已挂载。
- 下载二进制包:
mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
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
修改脚本中的 basedir 和 datadir 为实际路径。
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 远程登录。

浙公网安备 33010602011771号