mysql数据库的安装

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

mysql的优化分为三个部分
1.物理服务器硬件的优化
  mysql每秒钟都进行大量的,复杂的查询操作,对磁盘的1/O有很高的要求,通常认为1/O是制约mysql性能的最大因素。
2.mysql安装时的编译优化
   --static  静态链接提高13%性能
   --with-client-ldflags=-all-static
   --with-mysqld-ldflags=-all-static
   --pgcc  如果是Inter处理器,使用pgcc提高1%性能
   CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \
   CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \
   --felide-constructors -fno-exceptions -fno-rtti"
   Unix Socket 使用unix套接字链接提高7.5%性能,所以在windows下mysql性能肯定不如unix下面
   --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
   --enable-assembler允许使用汇编模式(优化性能)
   --without-debug 编译安装时默认已debug模式生成二进制代码,而该方式会给mysql带来很大的性能损失
  3.自身配置文件的优化 见后面的配置文档
------------------------------------------------------------------------
操作系统及其mysql配置文件说明
系统:Centos5.5
mysql:mysql-5.1.58.tar.gz源码包
安装目录:/usr/local/mysql/
数据目录:/data/mysql/3306/data/
二进制日志:/data/msyql/3306/binlog/
relay日志:/data/mysql/3306/relaylog/
配置文件:/data/mysql/3306/my.cnf
mysql.sock文件:/data/mysql/3306/mysql.sock
------------------------------------------------------------------------
1.安装gcc ncurses-devel
yum -y install gcc ncurses-devel
2.创建用户
/usr/sbin/groupadd mysql
/usr/sbin/useradd -s /sbin/nologin -g mysql -M mysql
3.安装
tar zxvf mysql-5.1.58.tar.gz
cd mysql-5.1.58
 ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innobase --with-plugin-PLUGIN --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-unix-socket-path=/data/mysql/3306/mysql.sock
make
Entering directory `/root/mysql-5.1.48/mysql-test' 这里需要很长时候
make install
设置目录权限
chown -R mysql:mysql /usr/local/mysql
创建mysql数据存放目录
mkdir -p /data/mysql/3306/data
mkdir -p /data/mysql/3306/binlog/
mkdir -p /data/mysql/3306/relaylog/
chown -R mysql:mysql /data/mysql/
初始化mysql数据库
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/3306/data --user=mysql
创建mysql配置文件
vim /data/mysql/3306/my.cnf

[client]
default-character-set=utf8
port    = 3306
socket  = /data/mysql/3306/mysql.sock

[mysqld]
default-character-set=utf8
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user    = mysql
port    = 3306
socket  = /data/mysql/3306/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql/3306/data
log-error = /data/mysql/3306/mysql_error.log
pid-file = /data/mysql/3306/mysql.pid
open_files_limit    = 10240
back_log = 600
max_connections = 3000
max_connect_errors = 6000
table_cache = 4096
external-locking = FALSE
max_allowed_packet = 32M

sort_buffer_size = 10M
join_buffer_size = 2M
thread_cache_size = 300
thread_concurrency = 16
query_cache_size = 512M
query_cache_limit = 4M

query_cache_min_res_unit = 2k
default-storage-engine = InnoDB
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 2048M
max_heap_table_size = 256M

long_query_time = 1
log-slave-updates
log_long_format
log-short-format
log-slow-queries=/data/mysql/3306/slow-log.log
#slow_query_log=/data/mysql/3306/slow-log.log
log-bin = /data/mysql/3306/binlog/binlog
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = /data/mysql/3306/relaylog/relaylog
relay-log-info-file = /data/mysql/3306/relaylog/relaylog
relay-log = /data/mysql/3306/relaylog/relaylog
expire_logs_days = 30
key_buffer_size = 1024M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover

interactive_timeout = 120
wait_timeout = 120

skip-name-resolve
#master-connect-retry = 10
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396

#master-host     =   192.168.0.1
#master-user     =   username
#master-password =   password
#master-port     =  3306

server-id = 1

innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2048M
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0


[mysqldump]
quick
max_allowed_packet = 64M
------------------------------------------------------------------------
创建mysql启动脚本文件
cp support-files/mysql.server.sh /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
/etc/init.d/mysqld start

查看mysql是否启动成功

[root@mail opt]# netstat -antl |grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN 

 

为了安全起见,可以自己手动编写mysql启动脚本,上面步骤可以省略
-----------------------------------------------------  -----------------
mysql 安装出错总结
1.在 CentOS 下编译安装MySQL时出错:
/bin/rm: cannot remove `libtoolt': No such file or directory
需要安装libtool软件包
2.[root@mail 3306]# /etc/init.d/mysqld restart
/etc/init.d/mysqld: line 272: @HOSTNAME@: command not found
/etc/init.d/mysqld: line 281: @HOSTNAME@: command not found
MySQL manager or server PID file could not be found!       [失败]
需要把mysql配置文件my.cnf放到/etc/目录下面,并且在mysqld指定下面目录
basedir=/usr/local/mysql
datadir=/usr/local/mysql/3306/data/
登录数据库的时候报下面的错误:
[root@nagios]# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
为了安全性,在编译数据库的时候修改了mysql.sock文件的存放位置,mysql.sock文件默认放在/tmp目录里面,所以在登录数据库的时候要指定修改后的mysql.sock文件的存放位置
[root@nagios]# locate mysql.sock
/etc/mysql/mysql.sock
[root@nagios]# /usr/local/mysql/bin/mysql -uroot -S /etc/mysql/mysql.sock -p










本文转自 sfzhang 51CTO博客,原文链接:http://blog.51cto.com/sfzhang88/851934,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
SQL 数据库 Windows
sql数据库安装过程,SQL数据库的安装过
本文概述了安装SQL Server数据库的步骤:准备硬件和软件环境,运行安装程序,选择安装类型,接受许可协议,设定安装路径和组件,配置实例和服务账户,选择身份验证模式,配置其他设置,然后安装并完成。安装后需检查验证SQL Server是否正常工作。确保遵循步骤以顺利完成安装。
40 3
|
4天前
|
SQL 关系型数据库 MySQL
【MySQL-3】图形化界面工具DataGrip安装&配置&使用
【MySQL-3】图形化界面工具DataGrip安装&配置&使用
|
4天前
|
关系型数据库 MySQL Linux
【MySQL-2】MySQL的下载&安装&启停&配置环境变量【一条龙教程】
【MySQL-2】MySQL的下载&安装&启停&配置环境变量【一条龙教程】
|
5天前
|
弹性计算 关系型数据库 MySQL
在线安装MySQL5.7和MySQL8.0
【4月更文挑战第30天】
15 0
|
5天前
|
存储 关系型数据库 MySQL
docker安装mysql8忽略大小写
docker安装mysql8忽略大小写
|
5天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
|
5天前
|
关系型数据库 MySQL 开发工具
Docker安装mysql8.0
Docker安装mysql8.0
|
5天前
|
弹性计算 关系型数据库 MySQL
在线安装mysql-5.6
【4月更文挑战第30天】
10 0
|
5天前
|
关系型数据库 MySQL 应用服务中间件
centos7在线安装jdk1.8+tomcat+mysql8+nginx+docker
现在,你已经成功在CentOS 7上安装了JDK 1.8、Tomcat、MySQL 8、Nginx和Docker。你可以根据需要配置和使用这些服务。请注意,安装和配置这些服务的详细设置取决于你的具体需求。
24 2
|
6天前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解