1.Centos7将默认数据库mysql替换成了Mariadb,需要先卸载
rpm -qa|grep mariadb // 查询出来已安装的mariadb
rpm -e --nodeps 文件名 // 卸载mariadb,文件名为上述命令查询出来的文件
2.下载linux通用版安装包 地址 : https://dev.mysql.com/downloads/mysql
解压并重命名,
此次安装的根目录为 /disk1/mysql
tar -zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.43-linux-glibc2.12-x86_64 /disk1/mysql
3.创建并配置/etc/my.cnf 文件
[mysql]
default-character-set=utf8
socket=/disk1/mysql/socket/mysql.sock
[mysqld]
user = mysql
port = 3306
socket =/disk1/mysql/socket/mysql.sock
basedir =/disk1/mysql
datadir =/disk1/mysql/data
max_connections = 500
character-set-server=utf8
server-id = 190315
log_bin = mysql-bin
binlog_format = ROW
expire_logs_days = 10
max_binlog_size = 100M
lower_case_table_name=1
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
query_cache_limit = 1M
query_cache_size = 16M
4.执行 chmod 644 /etc/my.cnf
5.创建mysql用户和用户组
groupadd mysql
useradd -g mysql mysql
6.确保以下目录存在后开始安装
/disk1/mysql/socket
/disk1/mysql/data
执行
cd /disk1/mysql
chown -R mysql:mysql ./
./scripts/mysql_install_db --user=mysql --basedir=/disk1/mysql --datadir=/disk1/mysql/data
【注】若执行安装命令出现以下问题:
a.
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper
解决方法 :安装autoconf库
yum -y install autoconf
b.
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法 :
yum install -y libaio
7.设置开机自启动服务控制脚本,在/disk1/mysql下执行以下命令
复制启动脚本到资源目录
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
增加mysqld服务控制脚本执行权限
chmod +x /etc/rc.d/init.d/mysqld
将mysqld服务加入到系统服务
chkconfig --add mysqld
检查mysqld服务是否已经生效
chkconfig --list mysqld
命令输出类似下面的结果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止
8.配置环境变量
将mysql的bin目录加入PATH环境变量,编辑 ~/.bash_profile文件添加:
export PATH=$PATH:/usr/local/mysql/bin
执行命令 source ~/.bash_profile
9.配置密码和访问权限,默认root是没有密码的
登陆数据库
mysql -uroot -p
mysql>use mysql;
mysql>update user set password=password(‘你要设置的密码’) where user=‘root’ and host=‘localhost’;
mysql>flush privileges;
mysql>GRANT ALL PRIVILEGES ON . TO ‘可以远程访问的用户名’@’%’ IDENTIFIED BY ‘可以远程访问的用户的密码’ WITH GRANT OPTION;