1、在线安装经常受制于网络环境,所以我偏爱tar包编译安装(注:我的centos是64位)。
首先去mysql镜像站下载 mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz,并把tar包传到centos,比如/root/Downloads
2、检查你所用的centos下有没有安装过mysql,有没有卸载干净
rpm -qa|grep -i mysql
如果存在,则需要先卸载掉,不然会出现覆盖错误。
yum remove mysql mysql-server mysql-libs mysql-server;
find / -name mysql 将找到的相关东西删除掉;
rpm -qa|grep mysql(查询出来的组件,用yum remove删掉)
3、解压缩
# tar -xzvf mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz # 解压文件
# cd mysql-5.7.15-linux-glibc2.5-x86_64 # 进入文件夹
# mv /usr/local/mysql-5.7.15-linux-glibc2.5-x86_64 /usr/local/mysql #文件夹改名
# mkdir /usr/local/mysql/data # 如果mysql下没有的话,则创建文件夹data
4、创建mysql的用户组/用户
#userdel mysql # 删除用户
#groupdel mysql # 删除用户组名
#groupadd mysql # 创建一个名为mysql的用户组
#useradd -g mysql -d /usr/local/mysql mysql # 在用户组下创建用户
5、编译安装
cd /usr/local/mysql/
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
记录上面成功安装后的密码,后面会用到!
6、配置mysql
cd /usr/local/mysql/support-files #进入mysql的安装目录支持文件目录
cp my-default.cnf /etc/my.cnf # 拷贝配置文件模板为新的mysql配置文件
#设置编码,可按需修改新的配置文件选项, 不修改配置选项, mysql则按默认配置参数运行.
#如下是我修改配置文件/etc/my.cnf, 设置编码为utf8以防乱码
vi /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
character_set_server=utf8
init_connect='SET NAMES utf8'
[client]
default-character-set=utf8
此处需要注释掉
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
否则后续登陆时会报异常:
mysql: [ERROR] unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'
7、启动mysql服务
./support-files/mysql.server start
mysql已运行成功!!!
如果出现以下错误:
Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/bogon.pid).
需要给mysql账号对mysql所在文件夹赋权:
chown -R mysql:mysql /usr/local/mysql
8、配置mysql服务开机自动启动
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # 拷贝启动文件到/etc/init.d/下并重命令为mysqld
# chmod 755 /etc/init.d/mysqld # 增加执行权限
# chkconfig --list mysqld # 检查自启动项列表中没有mysqld这个
# chkconfig --add mysqld # 如果没有就添加mysqld:
# chkconfig mysqld on # 用这个命令设置开机启动:
9、mysql服务的启动/重启/停止
# service mysqld start # 启动服务
# service mysqld restart # 重启服务
# service mysqld stop # 停止服务
10、修改mysql用户root的密码
mysql -u root -p
输入上边自动生成的密码,进入mysql环境
如果出现以下提示:
-bash: mysql: command not found
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:
# ln -s /usr/local/mysql/bin/mysql /usr/bin
以下是补充:
linux下,在mysql正常运行的情况下,输入mysql提示:
-bash: mysql: command not found
遇上-bash: mysql: command not found的情况别着急,这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:
把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下:
# cd /usr/local/bin
# ln -fs /MYSQLPATH/bin/mysql mysql
还有其它常用命令mysqladmin、mysqldump等不可用时候都可按用此方法解决。
注:其中MYSQLPATH是mysql的实际安装路径
继续修改mysql用户root的密码
mysql> SET PASSWORD = PASSWORD('123456'); #PASSWORD()里面的123456 是设置的新密码,可以设置成你的密码
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql> flush privileges;
11、更改一些编码
mysql> use mysql
mysql> \s
mysql> show variables like 'character%';
mysql> SET character_set_database = utf8;
mysql> show variables like 'character%';
mysql> \s
12、mysql远程授权
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
13、验证
退出mysql命令行,关闭防火墙
chkconfig iptables off
ok!