1,下载mysql安装包
wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
2,将下载好的文件放置在/usr/local目录下,并解压
tar -zxvf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
3, 重命名并删除安装包
mv mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz mysql
rm -rf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz(可以选择保留)
4,创建mysql用户组及系统用户
groupadd mysql
useradd -r -g mysql mysql (-r 表示创建系统用户,-g表示系统用户所属用户组)
5,进入mysql目录,执行mysql配置操作,死否覆盖按Y覆盖。
cp support-files/my-default.cnf /etc/my.cnf
6,编辑/etc/my.cnf文件
vi /etc/my.cnf
内容如下:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
character-set-server = utf8
skip-name-resolve
log-err = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
7,在mysql当前目录下设定目录的访问权限(注意后面的小点,表示当前目录)
chown -R mysql . #修改当前目录的所有者(用户)为mysql,-R表示递归处理所有文件或者文件夹
chgrp -R mysql . #修改当前目录所属的用户组为mysql用户组
chown -R root .
chown -R mysql data #修改data没有了的所有者为mysql用户
8,初始化数据(在mysql/bin或者mysql/scripts下有个 mysql_install_db 可执行文件初始化数据库),进入mysql/bin或者mysql/scripts目录下,执行下面命令:
./mysql_install_db --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp
如果执行过程中出现如下错误,说明是缺少相关依赖,执行如下命令解决,解决后重新执行脚本。
yum -y install autoconf 或者 yum -y install perl perl-devel
yum install libaio* 或者 yum -y install libaio-devel
9,启动mysql,进入/usr/local/mysql/bin目录,执行下面命令
./mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root &
10,配置mysql服务和开机启动(这个是针对linux系统的通用操作,centos7有其他方式),可以参看《Centos7 自定义systemd service服务和开机启动》一文
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
chmod 700 /etc/init.d/mysql
chkconfig --add mysqld
chkconfig --level 2345 mysqld on
chown mysql:mysql -R /usr/local/mysql/
11,可以选择重启操作系统reboot,查看开机启动是否生效。
12,操作mysql服务的命令
service mysqld status #查看mysql状态
service mysqld restart #重启mysql服务
service mysqld stop #停止mysql服务
service mysqld start #启动mysql服务
13,添加msql客户端
ln -s /usr/local/mysql/bin/mysql /usr/bin
14,更改访问权限
登录mysql,执行下面命令:
mysql -uroot -p
密码为空直接回车,运行以下两条命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' with grant option;
Flush privileges;
15,退出mysql
exit
注:本机访问mysql,root账户默认是没有密码的,端口号默认3306,如果需要修改root账户密码,在/usr/local/mysql/bin目录下,执行下面命令
./mysqladmin -h 127.0.0.1 -P3306 -uroot password 'root123'exit
16,mysql访问遇到的问题
使用navicat客户端,在其他机器上用账号和密码连接mysql服务器能够正常连接和操作,但是在本机上利用 mysql -hMysql服务器ip -uroot -proot123却拒绝连接,利用mysql -hMysql服务器ip -uroot -p 回车却能够正常登陆,这造成了部署到该服务器的web系统不能够正常连接mysql服务器。
问题原因:mysql是针对不同的ip,同一个用户可以拥有不同的密码,出现上述问题的原件就是navicat客户端所在机器的ip使用的root账号需要密码,但是本地用root连接mysql服务器却不需要密码。
解决办法:1,查询系统库mysql中的user表
select user,host,password from user;
2,删除host为localhost、127.0.0.1且密码为null的字段,为了安全甚至可以将user为null的内容也删除。
3,执行
flush privileges;
4,重启mysql服务
service mysqld restart