这两天,工作中需要将数据库从其他服务器上迁移到MySQL上,只好自己安装数据库了,这里记录一下笔记。
操作系统用的是CentOS,下载的MySQL源码版本是5.5.30。 安装步骤: 1,首先需要安装cmake和ncurses,安装MySQL用到cmake产生Makefile文件。 yum install cmake yum install ncurses-devel 注意,如果cmake失败,需要清除当前目录下的CMakeCache.txt文件,否则重新cmake仍然报原来的错误。 2,安装MySQLcmake . -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=mysqlmakesudo make install 注意,DEFAULT_CHARSET参数设置的编码并没有实际意义,貌似MySQL在版本5之后都支持多字符集了,可以在建立数据库实例的时候设置字符集,不同的实例可以使用的字符集。 3,建立mysql用户和用户组,并且分配文件访问权限groupadd mysqluseradd mysql -g mysql -s /sbin/nologinchown -R mysql:mysql /usr/local/mysql/ 4,建立数据库文件存放目录(可以建立到另外的大磁盘上)mkdir /data/mysql_dbchown -R mysql:mysql /data/mysql_db/ 5,配置文件ln -sf /usr/local/mysql/support-files/my-large.cnf /etc/my.cnfln -sf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 修改/etc/init.d/mysqldbasedir = /usr/local/mysqldatadir = /data/mysql_dbmysqld_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