一、查看CentOS是否安装MySQL
# rpm -qa | grep mysql //查看该操作系统上是否已经安装了mysql数据库
# rpm -e mysql // 普通删除模式
# rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
二、下载MySQL源码包
或者直接用命令行安装
[root@localhost ~]# yum install -y mysql-server mysql mysql-deve
三、安装和编译mysql安装包
(1)安装编译代码所需要的包
[root@localhost mysql-5.6.26]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio
[root@localhost mysql-5.6.26]# yum install libaio libaio-devel -y
[root@localhost mysql-5.6.26]# yum install perl-Data-Dumper -y
[root@localhost mysql-5.6.26]# yum install net-tools -y
(2)解压安装包并编译安装
[root@localhost src]# tar xvf mysql-5.6.26.tar.gz
[root@localhost src]# cd mysql-5.6.26
[root@localhost mysql-5.6.26]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
编译成功
[root@localhost mysql-5.6.26]# make && make install
至此,mysql安装完成
检查系统是否已经有mysql用户,如果没有则创建
[root@localhost mysql-5.6.26]# cat /etc/passwd | grep mysql
[root@localhost mysql-5.6.26]# cat /etc/group | grep mysql
创建mysql用户(但是不能使用mysql账号登陆系统)
[root@localhost mysql-5.6.26]# groupadd mysql
[root@localhost mysql-5.6.26]# useradd -g mysql mysql
修改权限
[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql
(3)初始化配置脚本
进入安装路径
[root@localhost mysql-5.6.25]# cd /usr/local/mysql
执行初始化配置脚本,创建系统自带的数据库和表
[root@localhost mysql]# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir /my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!
注意:在CentOS 7版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
(4)设置开机启动
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql]# chkconfig mysql on
(5)启动MySQL服务
[root@localhost ~]# service mysql start
注:如果启动时报错 “Starting MySQL.... ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).”则重新编译
(6)设置root密码,登录mysql
[root@localhost ~]# mysql -uroot
mysql> set password for root@localhost=password('root');
mysql> exit;
四、配置MySQL
(1)创建mysql新用户test_user
mysql> create user 'test_user'@'%' identified by 'test_user';
(2)给新用户test_user授权,让他可以从外部登录和本地登录
注意:@左边是用户名,右边是域名、IP和%,表示可以访问mysql的域名和IP,%表示外部任何地址都能访问。
mysql> grant all privileges on *.* to 'test_user'@'localhost' identified by 'test_user';
mysql> grant all privileges on *.* to 'test_user'@'%' identified by 'test_user';
mysql> select user,host,password from mysql.user;
mysql> flush privileges;
(3)查看mysql的默认存储引擎
从下面的执行结果可以看出,mysql的默认引擎是MyISAM,这个引擎是不支持事务的。
mysql> show engines;
也可以以下面的方式查看
mysql> show variables like 'storage_engine';
(4)修改mysql的默认引擎为InnoDB
停止mysql
mysql> exit;
[root@localhost ~]# service mysqld stop
(5)修改 /etc/my.cnf
[mysqld] 后加入 default-storage-engine=InnoDB
加入后my.cnf的内容为:
[root@localhost etc]# more my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-storage-engine=InnoDB
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
(6) 重新启动mysql
[root@localhost etc]# service mysqld start
Starting mysqld: [ OK ]
(7)修改防火墙,开放操作系统MySQL端口3306
CentOS6.5默认是不开放端口的,如果要让外部的系统访问CentOS6.5上的mysql,必须开放mysql的端口3306
[root@localhost etc]# vi /etc/sysconfig/iptables
添加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重启防火墙
[root@localhost etc]# service iptables restart
这样就可以从外部访问mysql了。
至此,MySQL在CentOS上的安装全部完成。