1 下载 MySQL 安装包
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz
2 安装 MySQL 依赖包
apt-get install build-essential
apt-get install libncurses5-devapt-get install cmake
提示:可通过 apt-cache depends 命令查看以上程序包的相关依赖包。
CentOS:
yum groupinstall "Development Tools"yum install ncurses-devel
3 编译并安装 MySQL
1) 解压 MySQL 安装包
tar -zxf mysql-5.6.14.tar.gzcd mysql-5.6.14
2) 编译 MySQL
cmake \
-DCMAKE_INSTALL_PREFIX=/opt/mysql \
-DMYSQL_DATADIR=/opt/mysql/data \
-DSYSCONFDIR=/opt/mysql/conf \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
3) 安装 MySQL
make -smake install -s
4 配置 MySQL
注意:以下操作均在 /opt/mysql 目录下进行。
第一步:创建 MySQL 用户
groupadd mysqluseradd -g mysql -s "/usr/sbin/nologin" mysql
CentOS:addgroup mysql
useradd -g mysql -s "/sbin/nologin" mysql
第二步:初始化数据库
chown mysql:mysql -R data
./scripts/mysql_install_db --user=mysql
执行完毕后,将在 MySQL 根目录下生成一个 my.cnf 文件。
第三步:创建配置文件
mkdir confmv my.cnf conf/
注意:在 CentOS 下,若 /etc/ 目录下存在 my.cnf 文件,则需要将其删除。
第四步:更改默认字符集为 UTF8
vim conf/my.cnf
...
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
...
为防止中文乱码,建议将数据库默认编码方式统一改为 utf8,默认是 latin1。
第五步:添加启动服务
cp support-files/mysql.server /etc/init.d/mysqld
update-rc.d mysqld defaults
移除启动服务:update-rc.d -f mysqld remove
CentOS:
cp support-files/mysql.server /etc/init.d/mysqldchkconfig mysqld on
第六步:配置环境变量
vim ~/.bashrc
...
# MySQL
export PATH=$PATH:/opt/mysql/bin
source ~/.bashrc
5 启动 MySQL 服务
service mysqld start
停止 MySQL 服务:
service mysqld stop
重启 MySQL 服务:
service mysqld restart
6 登录 MySQL
mysql -u root –p
随后需输入 root 用户密码(root)。
7 设置 root 用户密码
set password = password('新密码');
设置其他用户密码:set password for '用户名'@'主机名' = password('新密码');
命令行操作:mysqladmin -u root password '新密码'
8 附录
1) 清理 MySQL 用户
select host, user, password from mysql.user;
delete from mysql.user where password = '';
flush privileges;
为了提高安全性,建议删除所有空密码的用户,仅保留 [email protected] 一个用户。
2)创建用户
create user '用户名'@'主机名' identified by '密码';
主机名可用 localhost、具体 IP、%(任意 IP)。
删除用户:
drop user '用户名'@'主机';
3)授权
grant 权限 on 数据库名.表名 to '用户名'@'主机名';
权限包括:all、select、insert、update、delete 等,多种权限可用“,”分割。
表名可用“*”通配符。
撤销授权:
revoke 权限 on 数据库名.表名 from '用户名'@'主机名';
4) 远程访问 MySQL
若需要通过 root 用户远程访问 MySQL,则需要修改 mysql.user 表的 host 为“%”。
update mysql.user set host = '%' where user = 'root';
flush privileges;
5) 开放 MySQL 端口
对于 CentOS 而言,需要对外开放 3306 端口。
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/init.d/iptables saveservice iptables restart
查看 iptables:
/etc/init.d/iptables status或vim /etc/sysconfig/iptables