天天看点

linux安装源码mysql需要多久,在 Linux 下源码安装 MySQL

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