方法有:
1.专用软件包管理器包,如rpm
2.通用二进制格式的包,通常是用gcc,编译
3.源码包,需要编译安装5.5之前需要make安装5.5以后使用cmake安装。
cmake,需要额外安装功能就需要用源码包
如需要定制
mysql5.5版本下载地址 #downloads
不同的mysql rpm包介绍:
MySQL-devel:mysql开发包。针对mysql进行二次开发使用
MySQL-embedded:嵌入式环境使用的mysql
MySQL-client:mysql客户端
MySQL-server:mysql服务器端
MySQL-shared :被许多软件使用的mysql共享库
MySQL-shared-compat:提供的mysql共享库的兼容。是MySQL-shared的补充
MySQL-test:mysql 的测试组件
对于我们来说最重要的是mysql 服务器软件,和客户端软件
mysql安装完成后的目录结构
bin:mysql的各种二进制程序存放目录
data:默认情况的数据存放目录
include:头文件目录
lib:库文件目录
man:帮助文件目录
mysql-test:测试组件
scripts: mysql初始化脚本
share:
sql-bench:mysql基准性能测试
support-files:mysql的主配置文件目录主配置文件叫做my.cnf
mysql在Linux下读取配置文件的路径:
/etc/my.cnf 先找这个
/etc/mysql/my.cnf 再找这个
$MYSQL_HOME/my.cnf 最后找这个
也可以启动mysqld时候使用 --defults-extra-file=/path/to/file/my.cnf
mysql安装完成后应该进行的操作:
mysql安装完成后一般会生成5个用户,三个root 和两个匿名用户.
3个root:1 3. root@你的主机名
三个root的密码都为空,应该设置密码
设置密码方法:mysqladmin -u root password 'your passwd'
或者 :SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
两个匿名用户: ' ' @localhost 和 ' '@你的主机名
匿名用户应该删除掉。
安装前,确保安装好cmake
cmake 指定编译选项与make不同
指定安装文件的安装路径时常用选项:
-DMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql (数据保存路径)
-DSYSCONFDIR=/etc (配置文件路径)
mysql默认编译的存储引擎包括,csv,myisam,myisammrg和heap,若要安装其他引擎可以使用类似如下选项:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
若要指定不编译某引擎可以使用如下选项:
-DWITOUT_FEDERATED_STORAGE_ENGINE=1
若要编译其他功能可使用类似如下语句:
-DWITH_READLINE=1 (用于批量导入mysql数据)
-DWITH_SSL=system
其他常用选项:
DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DDEFAULT_CHARSETS=utf-8
-DENABLE_PROFILING=1 (mysql性能分析)
安装:
安装依赖软件 yum install gcc
yum install gcc-c++
下载依赖软件cmake /cmake-2.8.4.tar.gz
解压
tar -zxvf tar zxvf cmake-2.8.4.tar.gz
编译
./configure --prefix=/usr/local/cmake
安装:make && make install
可以使用 cmake . -LH 获取cmake帮助信息
安装完cmake 之后开始准备安装mysql
首先先新建一个mysql用户和mysql组
groupadd -r mysql
useradd -r -g mysql -s /sbin/nologin mysql
新建一个用于存储数据的mysql目录,建议最好使用一个lvm,我们就先使用目录,在root下建立一个mysqldata目录
做好这些准备后,开始编译mysql
编译,进入到mysql解压目录执行
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mydata/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
如果执行上面的cmake 命令出错,提示command not found 说明环境变量没有弄好。
配置cmake 环境变量
echo 'export PATH=/usr/local/cmake/bin:$PATH' >>/etc/profile
刷新配置文件
soucre /etc/profile
如果之前的cmake可以正常执行就可以安装
然后执行 make
最后执行make install
完成后切换到/usr/local/mysql 下面将该目录属主改为mysql
chown -R :mysql .
然后初始化mysql数据库
scripts/mysql_install_db --user=mysql --datadir=/root/mysqldata
复制配置文件到/etc 命名为my.cnf
cp support-files/my-large.cnf /etc/my.cnf
复制mysql.server 到/etc/init.d 目录下命令为mysqld
cp support-files/mysql.server /etc/init.d/mysqld
设置开机启动
chkconfig --add mysqld
启动mysql
service mysqld start
报错:Starting MySQL......... ERROR! The server quit without updating PID file
原因:原因应该出现在我们数据存放目录在/root/mysqldata 但是/root目录是超级用户的目录。因此mysql没有权限进入此目录
编辑客户端环境变量:
编辑/etc/profile.d/mysql.sh
编辑内容如下:
export PATH=$PATH/usr/local/mysql/bin
最后编辑/etc/my.cnf
在[mysqld] 下面添加一个mysql数据保存路径
datadir=/your/data/file/path
使用mysql命令 即可进入mysql。第一次登陆无需密码。登陆上去首先删除掉两个匿名用户
drop user ' ' @localhost;
drop user ' '@127.0.0.1;
如果你的主机名是localhost 则第二条命令会报错。因为主机名是localhost的话,第二个匿名用户名字就是localhost.localdomain
因此执行
drop user ' ' @localhost.localdomain
这些用户信息我们可以查看 有个mysql名字的数据库里面的表user。
use mysql
select User,Host,Password from user;
接下来给root设置密码:
update user set Password=PASSWORD('your passwd') where user='root';
如果mysql 安装服务器端和客户端都在同一机器上面,那么客户端将会基于mysql.sock 进行通讯
如果客户端服务器端,不在同一主机,则基于tcp/ip协议
mysql的客户端工具:
mysql
mysqldump
mysqladmin
mysqlimport
mysqlcheck