首页 > mysql生成环境都用什么版?

mysql生成环境都用什么版?

版指是社区版还是什么,在哪下载,感谢!!!


免费下载的都是社区版的,如果版本号的话推荐用5.6版本的。
windows下载 http://dev.mysql.com/downloads/windows/


MySQL是Linux发行版很重要的组件,是每个发行版软件源必带的软件.

#Ubuntu/Debian:
sudo apt-get install mysql-server
#Redhat/CentOS:
sudo yum install mysql-server

或者可以使用Percona Server和MariaDB,它们都为Ubuntu/Debina/Redhat/提供有官方的软件源.
比如Ubuntu 14.04可以非常方便地通过apt安装Percona官方源提供的二进制包:
http://www.percona.com/doc/percona-server/5.6/installation/apt_repo.ht...

sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
sudo nano /etc/apt/sources.list 加入:
deb http://repo.percona.com/apt trusty main
deb-src http://repo.percona.com/apt trusty main

其中trusty是Ubuntu 14.04的代号,12.04的代号为precise。

sudo apt-get update 更新源,使sources.list生效。
apt-cache search percona 可以看到percona提供的所有工具,比如:
percona-server-server-5.5
percona-server-server-5.6
percona-xtradb-cluster
percona-toolkit
percona-xtrabackup
percona-zabbix-templates
percona-cacti-templates
percona-nagios-plugins

如果你只想安装5.6版本,只需要执行:

sudo apt-get install percona-server-server-5.6

除了Percona Server和MariaDB,还有个WebScaleSQL,由Facebook/Google/LinkedIn/Twitter/Alibaba联合维护的一个开源MySQL分支,喜欢的可以试试:
https://github.com/webscalesql

或者自己编译安装:
比如Ubuntu编译安装Percona:
http://www.percona.com/downloads/Percona-Server-5.6/LATEST/source/
http://www.percona.com/doc/percona-server/5.6/installation.html
http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.ht...
http://dev.mysql.com/doc/refman/5.6/en/server-options.html

首次执行cmake . -LH后会生成CMakeCache.txt,然后就可以查看默认的编译配置:
cmake . -LH|egrep "CMAKE_BUILD_TYPE|CMAKE_INSTALL_PREFIX"
CMAKE_BUILD_TYPE默认是RelWithDebInfo
CMAKE_INSTALL_PREFIX默认是/usr/local/mysql

按提示安装上依赖的包(很详细,具体到apt/yum包),删除CMakeCache.txt,重新执行cmake:
sudo apt-get install libaio-dev libncurses5-dev bison
rm -f CMakeCache.txt
看到下面信息表示cmake预编译成功:
-- Configuring done
-- Generating done
开始编译:
time make 在Ubuntu上使用i5-3230M编译安装耗时10分钟,Atom-N450则花了105分钟.
make install 在make与make install的时候可以看到进度百分比,这一点cmake要比configure方式要好.

我的配置:

cmake . \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_CONFIG=mysql_release \
-DFEATURE_SET=community \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNODB_MEMCACHED=ON \
-DCMAKE_INSTALL_PREFIX=/png/percona/5.6.23 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock

其中/tmp/mysql.sock是默认存放位置,可以指定其他位置,比如/tmp/percona-5.6.23.sock
还可以在配置my.cnf里自定义socket位置,比如: socket=/tmp/percona-5.6.23.sock

Percona Server官方默认的配置:

cmake . \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ # 开启优化并生成调试信息,其中Debug:-g Release:-O2 RelWithDebInfo:-O2 -g MinSizeRel:-Os
-DBUILD_CONFIG=mysql_release \ # 该选项表示,我们使用与Oracle官方相同的参数进行编译
-DFEATURE_SET=community \
-DWITH_EMBEDDED_SERVER=OFF

cmake/make/make install之后的操作:

新建组和用户:

sudo groupadd -r png_mysql
sudo useradd -r -g png_mysql -s /usr/sbin/nologin -d /png/nonexistent -c "png user" png_mysql
或者
sudo addgroup png_mysql --system
sudo adduser png_mysql --system --disabled-login --ingroup png_mysql --no-create-home --home /nonexistent --gecos "png_mysql user" --shell /bin/false

创建my.cnf配置文件:

cd /png/percona/5.6.23
cp support-files/my-default.cnf /png/percona/5.6.23/etc/my.cnf

my-default.cnf里面没什么内容,可以参考apt安装的5.5版本的配置,注意5.5有些配置应用到5.6上会导致无法启动.
注意:5.6开始support-files下没有my-medium.cnf这些配置模板.
/png/percona/5.6.23/etc/my.cnf配置参考:

[mysqld]
basedir=/png/percona/5.6.23
datadir=/png/percona/5.6.23/data
port=3306
socket=/tmp/mysql.sock
#sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
default_storage_engine=innodb
innodb_buffer_pool_size=10M
innodb_log_file_size=5M
character_set_server=utf8
bind-address=127.0.0.1
log_error=/png/percona/5.6.23/logs/error.log
#log-bin=/png/percona/5.6.23/logs/binlog
general_log=ON
general_log_file=/png/percona/5.6.23/logs/log.sql
slow_query_log=ON
slow_query_log_file=/png/percona/5.6.23/logs/slow.sql
long_query_time=0.5
pid-file=/png/percona/5.6.23/data/mysqld.pid
user=png_mysql
table_definition_cache=400
table_open_cache=400

[client]
port=3306
socket=/tmp/mysql.sock

初始化数据库:
sudo service mysql stop 运行mysql_install_db前关闭原来apt-get安装的MySQL,以免受到影响.

sudo scripts/mysql_install_db \
--user=png_mysql \
--defaults-file=/png/percona/5.6.23/etc/my.cnf \
--basedir=/png/percona/5.6.23 \
--datadir=/png/percona/5.6.23/data

其中--user=png_mysql参数需要使用sudo执行,这时会自动设置data目录权限(目录700,文件660,所有者png_mysql),运行时也将使用png_mysql身份运行.
也可以直接使用当前用户身份初始化数据库,这时data目录所有者和运行时用户都使用当前用户:

scripts/mysql_install_db \
--defaults-file=/png/percona/5.6.23/etc/my.cnf \
--basedir=/png/percona/5.6.23 \
--datadir=/png/percona/5.6.23/data

注意:以普通用户install数据库就需要以普通用户启动数据库,否则会启动失败.
设置root用户密码:

/png/percona/5.6.23/bin/mysqladmin -u root password 'new-password'
或 /png/percona/5.6.23/bin/mysqladmin -u root -h ubuntu password 'new-password'
或 /png/percona/5.6.23/bin/mysql_secure_installation

mysql_secure_installation会设置root用户密码,禁止root用户远程登录,删除匿名用户,删除test数据库.
注意,mysql_secure_installation会默认连接/tmp/mysql.sock,如果不是的话,要做个软链接,比如:
ln -s /tmp/percona-5.6.23.sock /tmp/mysql.sock
如果没有指定DMYSQL_UNIX_ADDR,则默认是/tmp/mysql.sock.

MySQL对数据和日志的权限是很敏感的,不可写的话会造成无法启动:
下面是apt安装的MySQL的数据和日志权限:
/var/lib/mysql drwx------ mysql mysql
/var/log/mysql drwxr-s--- mysql adm
修改所有者为Percona运行用户:

sudo chown -R png_mysql:png_mysql /png/percona/5.6.23/data
sudo mkdir /png/percona/5.6.23/logs
sudo chown -R png_mysql:png_mysql /png/percona/5.6.23/logs

最后用服务管理脚本mysql.server或者mysqld_safe启动MySQL服务:

sudo /png/percona/5.6.23/bin/mysqld_safe --defaults-file=/png/percona/5.6.23/etc/my.cnf

显示内容(可见MySQL会使用jemalloc进行内存分配):

150325 16:24:18 mysqld_safe Adding '/usr/lib/x86_64-linux-gnu/libjemalloc.so.1' to LD_PRELOAD for mysqld
150325 16:24:18 mysqld_safe Logging to '/png/percona/5.6.23/logs/error.log'.
150325 16:24:19 mysqld_safe Starting mysqld daemon with databases from /png/percona/5.6.23/data

其中参数--defaults-file表示只读取这个配置文件.可以通过 sudo killall mysqld 关闭.

/png/percona/5.6.23/bin/mysql --help|grep -B 1 /etc/mysql/my.cnf
mysql.server服务会按顺序读取以下配置(优先级由低到高):

/etc/my.cnf /etc/mysql/my.cnf /png/percona/5.6.23/etc/my.cnf ~/.my.cnf

建议值保留一个配置,以免混乱.
注意:配置文件可以是多个,相同的设置,会以最后一个配置文件的设置为准.

修改服务脚本mysql.server,只读取一个配置,避免受到其他配置影响:
mysqld_pid_file_path 设为 /png/percona/5.6.23/data/mysqld.pid, 注意跟 /png/percona/5.6.23/etc/my.cnf 的 pid-file 对应.
注释掉 这一行.

parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`

在'start'下把

$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &

改为:

$bindir/mysqld_safe --defaults-file=/png/percona/5.6.23/etc/my.cnf >/dev/null 2>&1 &

启动脚本support-files/mysql.server调用bin/mysqld_safe脚本,mysqld_safe又调用二进制文件bin/mysqld.

cp /png/percona/5.6.23/support-files/mysql.server /png/percona/5.6.23/png_mysql
sudo /png/percona/5.6.23/png_mysql start
【热门文章】
【热门文章】