一、简介

MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。有以下特点:

  • MySQL是一种数据库管理系统。
  • MySQL是一种关联数据库管理系统。
  • MySQL软件是一种开放源码软件。
  • MySQL数据库服务器具有快速、可靠和易于使用的特点。
  • MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中。
  • 有大量可用的共享MySQL软件。

MySQL表最大能达到多少?

InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。

 

二、安装MySQL

下载MySQL地址:http://dev.mysql.com/downloads/mysql/

CentOS 安装:

yum install mysql-server

Ubuntu 安装:

1. sudo apt-get install mysql-server
2. sudo apt-get isntall mysql-client
3. sudo apt-get install libmysqlclient-dev

# 检测是否安装成功(是否为LISTEN状态)
sudo netstat -tap | grep mysql

编译安装MySQL-5.5.32:

# 安装依赖包
yum install ncurses-devel gcc gcc-c++ -y

# 创建目录
mkdir -p /home/oldsuo/tools

# 安装cmake软件,gmake编译安装
cd /home/oldsuo/tools/
tar xf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure
#CMake has bootstrapped.  Now run gmake.
gmake
gmake install
cd ../


# 开始安装mysql
# 创建用户和组
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql

# 解压编译MySQL
tar zxf mysql-5.5.32.tar.gz 
cd mysql-5.5.32
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
-DMYSQL_DATADIR=/application/mysql-5.5.32/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0

#-- Build files have been written to: /home/oldsuo/tools/mysql-5.5.32
提示: 编译时可配置的选项很多,具体可参考结尾附录或官方文档:

make
#[100%] Built target my_safe_process
make install
ln -s /application/mysql-5.5.32/ /application/mysql
如果上述操作未出现错误,则MySQL5.5.32软件cmake方式的安装就算成功了。


#拷贝配置文件
cp mysql-5.5.32/support-files/my-small.cnf /etc/my.cnf

#添加变量,并使之生效
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
echo $PATH

#授权用户及/tmp/临时文件目录
chown -R mysql.mysql /application/mysql/data/
chmod -R 1777 /tmp/

#初始化数据库
cd /application/mysql/scripts/
./mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
cd ../

#启动数据库
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
/etc/init.d/mysqld  start

#检查端口
netstat -lntup|grep 3306

 编译安装完后一般安全操作:

 1、删除不必要的用户和库:

#查看用户和主机列,从mysql.user里查看
select user,host from mysql.user;

#删除用户名为空的库,并检查
delete from mysql.user where user='';
select user,host from mysql.user;

#删除主机名为localhost.localdomain的库,并检查
delete from mysql.user where host='localhost.localdomain';
select user,host from mysql.user;

#删除主机名为::1的库,并检查。::1库的作用为IPV6
delete from mysql.user where host='::1';

#删除test库
drop database test;

2、添加额外管理员:

# 添加额外管理员,system作为管理员,oldsuo为密码
mysql> delete from mysql.user;
Query OK, 2 rows affected (0.00 sec)
mysql> grant all privileges on *.* to system@'localhost' identified by 'oldsuo' with grant option;
Query OK, 0 rows affected (0.00 sec)
# 刷新MySQL的系统权限相关表,使配置生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+--------+-----------+
| user   | host      |
+--------+-----------+
| system | localhost |
+--------+-----------+
1 row in set (0.00 sec)
mysql>

3、设置登录密码并开机自启:

#设置密码,并登陆
/usr/local/mysql/bin/mysqladmin -u root password 'oldsuo'
mysql -usystem -p

#开机启动mysqld,并检查
chkconfig mysqld on
chkconfig --list mysqld

 

#安装依赖包
yum –y install ncurses ncurses-devel gcc gcc-c++ 

#添加mysql用户及组
groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql

#mysql5.1.62编译参数:
./configure \
--prefix=/usr/local/mysql \
--with-unix-soket-path=/usr/local/tmp/mysql.sock \
--localstatedir=/usr/local/mysql/data \
--enable-assembler \
--enable-thread-safe-client \
--with-mysqld-user=mysql \
--with-big-tables \
--without-debug \
--with-pthread \
--enable-assembler \
--with-extra-charsets=complex \
--with-readline \
--with-ssl \
--with-embedded-server \
--enable-local-infile \
--with-plugins=partition,innobase \
--with-mysqld-ldflags=-all-static \
--with-client-ldflags=-all-static

make && make install

#初始化mysql
mkdir -p /usr/local/mysql/data    #建立mysql数据文件目录
chown -R mysql.mysql /usr/local/mysql/        #授权mysql用户访问mysql安装目录
/usr/local/mysql/bin/mysql_install_db --user=mysql        #初始化

#拷贝mysql启动脚本
cp support-files/my-small.cnf /etc/my.cnf 
#cp support-files/mysql.server /etc/init.d/mysqld 
chmod 700 /etc/init.d/mysqld

#配置mysql使用全局路径
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile        #添加变量到profile
source /etc/profile        #使变量生效
echo $PATH            #检查

#启动mysqld
/etc/init.d/mysqld start

#登陆报错,做软链接
#ln -s /usr/local/mysql/bin/mysql /usr/bin/

#启动报错日志:  Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't #exist
#解决方法:  /usr/local/mysql/bin/mysql_install_db --user=mysql   #初始化数据库即可

#登陆报错: mysql: unknown variable 'datadir=/usr/local/mysql/data'
#解决方法: my.cnf 配置问题,vim /etc/my.cnf
[client]
#password        = your_password
port                = 3306
socket             = /tmp/mysql.sock
#datadir             = /data1/mysql/var/          #这个不能加在上面,去掉

[mysqld]
port                = 3306
socket             = /tmp/mysql.sock
datadir            = /data1/mysql/var/          #加在这里就可以了


#设置mysql用户root 的密码为oldsuo
/usr/local/mysql/bin/mysqladmin -u root password 'oldsuo'

mysql5.1.62安装编译