Centos7将默认数据库mysql替换成了Mariadb,如果需要使用mysql需要自己安装。

安装mysql

下载mysql的linux安装包。

卸载系统自带的Mariadb

打开终端

1
2
rpm -qa | grep mariadb   //查询已安装的mariadb
rpm -e --nodeps 文件名   //卸载,文件名为刚查出来的

删除/etc 目录下的 my.cnf

1
rm /etc/my.cnf

执行命令创建MySQL用户组

1
groupadd mysql

创建用户名为mysql的用户并加入到Mysql用户组

1
useradd -g mysql mysql

将下载的压缩包ftp到/usr/local并解压

1
tar -zxvf .......

将解压好的文件夹重命名为mysql

1
mv .... /usr/local/mysql

在/etc下新建配置文件my.cnf,并添加内容

简单方法是copy一份/usr/local/mysql/suppport-files/下的my-default.cnf文件到/etc下
1
cp my-default.cnf /etc/my.cnf

编写配置文件内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[mysql]  
# 设置mysql客户端默认字符集  
default-character-set=utf8   
socket=/var/lib/mysql/mysql.sock  
  
[mysqld]  
skip-name-resolve  
#设置3306端口  
port = 3306   
socket=/var/lib/mysql/mysql.sock  
# 设置mysql的安装目录  
basedir=/usr/local/mysql  
# 设置mysql数据库的数据的存放目录  
datadir=/usr/local/mysql/data  
# 允许最大连接数  
max_connections=200  
# 服务端使用的字符集默认为8比特编码的latin1字符集  
character-set-server=utf8  
# 创建新表时将使用的默认存储引擎  
default-storage-engine=INNODB  
lower_case_table_name=1  
max_allowed_packet=16M

进入安装mysql软件目录

1
2
3
cd /usr/local/mysql
chown -R mysql:mysql ./ 修改当前目录拥有着为Mysql用户
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 安装数据库

若安装时出现以下错误

1
FATAL ERROR: please install the following Perl modules before executing   ./scripts/mysql_install_db:Data::Dumper
解决方法:需要安装autoconf库
1
yum -y install autoconf  //此包安装时会安装Data:Dumper模块
重新执行上面安装代码

修改目前data目录的拥有着为mysql用户

1
chown -R mysql:mysql data

到此数据库安装完成


配置mysql

修改my.cnf权限

1
chmod 644 /etc/my.cnf
必须为644,否则启动的时候会报下面的错误:
1
Warning: World-writable config file '/etc/my.cnf' is ignored

复制启动脚本到资源目录

1
cp ./mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

增加mysqld服务控制脚本执行权限

1
chmod +x /etc/rc.d/init.d/mysqld

将mysqld服务加到系统服务

1
chkconfig --add mysqld

检查mysqld服务是否生效

1
chkconfig --list mysqld
出现下面效果说明生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止
1
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

启动mysql

1
service mysqld start

将mysql的bin目录加入到PATH环境变量,编辑 ~/.bash_profile

1
vi ~/.bash_profile
在文件最后添加如下信息并保存:
1
export PATH=$PATH:/usr/local/mysql/bin

使修改内容生效

1
source ~/.bash_profile

以root账户登陆mysql,默认没有密码

1
mysql -uroot -p    直接回车就行

设置root账户密码为root

1
2
3
use  mysql;
update user set password=password('root') where user='root' and host='localhost';
flush privileges;

设置远程主机登陆,注意下面的your username和your password改成你需要的。

1
GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password' WITH  GRANT OPTION;

遇到的错误

错误1
*若启动时出现错误: mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
需要新建一个 mysql 目录,并赋予权限*
错误2
*若mysql服务正常,运行mysql -uroot -proot 时出现错误:bash: mysql: command not found
需要创建一个软连接:
cd /usr/local/bin 
ln -fs /usr/local/mysql/bin/mysql mysql*

设置日志

- 错误日志
log-error=/log/err.log
- 一般查询日志
log-output-FILE
general_log=1 #0关闭
general_log_file=/usr/local/mysql/general.log
- 二进制日志
server_id=1
log-bin=/var/log/mysql-bin
- 慢查询日志
slow_query_log=1
slow_query_log_file=/usr/local/mysql/slow_query.log

常用操作

1
show processlist;  可以查看进程,kill id 杀掉。
1
show variables like '%%'   可以查看一些参数。

大功告成!