源码安装
./configure \ --prefix=/usr/local/mysql \ --localstatedir=/data/mysql/data \ mysql数据目录
--with-unix-socket-path=/usr/local/mysql/mysql.sock--enable-assembler \ --with-mysqld-ldflags=-rdynamic \ --with-client-ldflags=-all-static \ --with-plugins=innobase,partition \ --with-extra-charsets=none \ --enable-thread-safe-client \
--with-client-ldflags=-all-static \ 以纯静态方式编译客户端--with-mysqld-ldflags=-all-static 以纯静态方式编译服务端
make && make install
源码安装,使用cmake 安装,新版MYSQL使用
安装cmake:
tar zxvf cmake-2.8.4.tar.gz cd cmake-2.8.4 ./configure --prefix=/usr/local/cmake make && make install安装mysql5.5.13
groupadd mysql //所以在这里我们要建一个msyql的用户和组 useradd -g mysql mysql -s /usr/sbin/nologin mkdir /usr/local/mysql //创建目录 mkdir /usr/local/mysql/data 进入mysql-5.5.13的解压目录: cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql && make && make install 进入mysql的安装目录/usr/local/mysql下: scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql //初始化mysql数据库 cp support-files/my-medium.cnf /usr/local/mysql/my.cnf //copy配置文件 chown -R mysql:mysql /usr/local/mysql //更改权限 vi /usr/local/mysql/my.cnf //加上以下内容 [mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data log-error = /usr/local/mysql/mysql_error.log pid-file = /usr/local/mysql/mysql.pid user = mysql tmpdir = /tmp 启动mysql bin/mysqld_safe --user=mysql & 或使用下列命令把mysql添加为系统服务。 cd /usr/local/mysql/support-files/ cp ./mysql.server /etc/init.d/mysqld /etc/init.d/mysqld start
其它cmake 方式
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=yes -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql
附: Mysql CMAKE编译参数详解
-DCMAKE_INSTALL_PREFIX= 指向mysql安装目录 -DINSTALL_SBINDIR=sbin 指向可执行文件目录(prefix/sbin) -DMYSQL_DATADIR=/var/lib/mysql 指向mysql数据文件目录(/var/lib/mysql) -DSYSCONFDIR=/etc/mysql 指向mysql配置文件目录(/etc/mysql) -DINSTALL_PLUGINDIR=lib/mysql/plugin 指向插件目录(prefix/lib/mysql/plugin) -DINSTALL_MANDIR=share/man 指向man文档目录(prefix/share/man) -DINSTALL_SHAREDIR=share 指向aclocal/mysql.m4安装目录(prefix/share) -DINSTALL_LIBDIR=lib/mysql 指向对象代码库目录(prefix/lib/mysql) -DINSTALL_INCLUDEDIR=include/mysql 指向头文件目录(prefix/include/mysql) -DINSTALL_INFODIR=share/info 指向info文档存放目录(prefix/share/info) prefix官方推荐设为/usr Storage Engine相关 类型csv,myisam,myisammrg,heap,innobase,archive,blackhole 若想启用某个引擎的支持:-DWITH_<ENGINE>_STORAGE_ENGINE=1 如: -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 若想禁用某个引擎的支持:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1 如: -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 Library相关 -DWITH_READLINE=1 启用readline库支持(提供可编辑的命令行) -DWITH_SSL=system 启用ssl库支持(安全套接层) -DWITH_ZLIB=system 启用libz库支持(zib、gzib相关) -DWTIH_LIBWRAP=0 禁用libwrap库(实现了通用TCP包装的功能,为网络服务守护进程使用) -DMYSQL_TCP_PORT=3306 指定TCP端口为3306 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 指定mysql.sock路径 -DENABLED_LOCAL_INFILE=1 启用本地数据导入支持 -DEXTRA_CHARSETS=all 启用额外的字符集类型(默认为all) -DDEFAULT_CHARSET=utf8 指定默认的字符集为utf8 -DDEFAULT_COLLATION=utf8_general_ci 设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确) -DWITH_EMBEDDED_SERVER=1 编译嵌入式服务器支持 -DMYSQL_USER=mysql 指定mysql用户(默认为mysql) -DWITH_DEBUG=0 禁用debug(默认为禁用) -DENABLE_PROFILING=0 禁用Profiling分析(默认为开启) -DWITH_COMMENT='string' 一个关于编译环境的描述性注释 3.二进制安装官网下二进制分发版的格式是: mysql-<版本>-<OS>-tar.gz
#wget
添加用户和组 #groupadd mysql #useradd -g mysql mysql 安装mysql到/usr/local/mysql下 #cd /usr/local #tar zxvf /{MySQL5.6_path}/mysql-{version}.tar.gz 例如 #cd /usr/local #tar zxvf /root/mysql-5.6.20-linux-glibc2.5-i686.tar.gz 改解压后文件夹名为 mysql #mv mysql-5.6.20-linux-glibc2.5-i686 mysql 修改mysql的各级文件夹和文件的创建者、创建组为mysql(注意语句后面有个.) cd mysql chown -R mysql . chgrp -R mysql . 初始化mysql表、test表、infomation表等。 #scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data #cp support-files/mysql.server /etc/init.d/mysqld 启动 /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 安装需要的包即可:libstdc++.so.6和libaio.so.1和libncurses.so.5 修改配置文件 [root@10-4-5-9 mysql]# cp my.cnf /etc/my.cnf [root@10-4-5-9 mysql]# vi /etc/my.cnf [mysqld]中添加: basedir = /usr/local/mysql datadir = /usr/local/mysql/data port = 3306 server_id = 1 启动mySQL服务 #ln -s /usr/local/mysql/bin/mysql /usr/bin #service mysqld start 登陆MySQL并且删除空用户 mysql> SELECT user,host,password FROM mysql.user; +------+-----------+----------+ | user | host | password | +------+-----------+----------+ | root | localhost | | | root | 10-4-5-9 | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | 10-4-5-9 | | +------+-----------+----------+ 6 rows in set (0.00 sec) mysql> UPDATE mysql.user set password = PASSWORD('xxx') WHERE user = 'root'; mysql> DROP USER ; mysql> FLUSH PRIVILEGES;