在Linux下安装MySQL

    这两天,工作中需要将数据库从其他服务器上迁移到MySQL上,只好自己安装数据库了,这里记录一下笔记。

    操作系统用的是CentOS,下载的MySQL源码版本是5.5.30。

    安装步骤:

    1,首先需要安装cmake和ncurses,安装MySQL用到cmake产生Makefile文件。
       yum install cmake
       yum install ncurses-devel
       注意,如果cmake失败,需要清除当前目录下的CMakeCache.txt文件,否则重新cmake仍然报原来的错误。

    2,安装MySQL
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql_db \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DSYSCONFDIR=/etc \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql

make
sudo make install

       注意,DEFAULT_CHARSET参数设置的编码并没有实际意义,貌似MySQL在版本5之后都支持多字符集了,可以在建立数据库实例的时候设置字符集,不同的实例可以使用的字符集。

    3,建立mysql用户和用户组,并且分配文件访问权限
groupadd mysql
useradd mysql -g mysql -s /sbin/nologin
chown -R mysql:mysql  /usr/local/mysql/

    4,建立数据库文件存放目录(可以建立到另外的大磁盘上)
mkdir /data/mysql_db
chown -R mysql:mysql  /data/mysql_db/

    5,配置文件
ln -sf /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
ln -sf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

       修改/etc/init.d/mysqld
basedir  = /usr/local/mysql
datadir = /data/mysql_db
mysqld_pid_file_path=/tmp/mysqld.pid

    6,初始化数据
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql_db --basedir=/usr/local/mysql

    7,配置服务
chkconfig --add mysqld
       启动
service mysqld start
       配置防火墙(这里为了简单起见,对所有的外来IP都接受)
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables status

    8,给root帐号设置密码
/usr/local/mysql/bin/mysqladmin -u root password "match"

    9, 建立业务帐号
mysql --user=root  --password=match -h localhost
       注意,仅仅允许root在本机登录

    登录后,首先清理匿名帐号:
select user,host from mysql.user; 
delete from mysql.user where user='';

    建业务数据库实例:
DROP DATABASE images;
create DATABASE images default character set gbk;

--建立从数据库本机登录数据库的帐号
DROP USER 'cutscreen'@'localhost';
CREATE USER 'cutscreen'@'localhost' IDENTIFIED BY 'cutscreen#match';
GRANT ALL ON images.* TO 'cutscreen'@'localhost' with GRANT OPTION;

--建立从192.168.1.15登录数据库的帐号
DROP USER 'cutscreen'@'192.168.1.15';
CREATE USER 'cutscreen'@'192.168.1.15' IDENTIFIED BY 'cutscreen#match';
GRANT ALL ON images.* TO 'cutscreen'@'192.168.1.15' with GRANT OPTION;

    使权限配置生效:
flush PRIVILEGES;

    10,测试帐号是否可用(数据库在192.168.1.14上)
mysql --user=cutscreen  --password=cutscreen#match -h 192.168.1.14


你可能感兴趣的:(mysql,安装)