Linux tar方式安装mysql
本文介绍一下linxu环境下通过解压tar包方式Mysql数据库的安装。-
创建mysql用户组
在安装的时候创建一个mysql组和一个mysql用户,把跟mysql安装有关的目录属主改为mysql,在MySQL启动的时候,单进程mysqld,该进程的属主就是mysql,这样就保证了mysql服务的独立性,即便mysql服务被黑掉,得到了mysql用户权限,也不会影响整个系统的安全。[root@localhost /]# groupadd mysql #创建mysql用户组(可以自己取其它的名字) [root@localhost /]# useradd -r -g mysql mysql #创建mysql用户并添加到mysql用户组中 [root@localhost /]# passwd mysql #给mysql用户设置密码,保证安全性(可不操作)
-
下载mysql tar包并解压
这里用到的是mysql-5.5.62 64位: 官方下载地址
想下载其它版本的可以访问mysql官网:[root@localhost /]# cd /opt [root@localhost opt]# wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz #wget下载 [root@localhost opt]# tar -xzvf /opt/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ #解压 [root@localhost local]# mv /usr/local/mysql-5.5.62-linux-glibc2.12-x86_64/ /usr/local/mysql #重命名 [root@localhost local]# chown -R mysql /usr/local/mysql/ #将mysql目录访问权限赋为mysql用户 [root@localhost local]# chgrp -R mysql /usr/local/mysql/ #改变mysql目录的用户组属于mysql组
将mysql安装目录添加到系统变量
[root@localhost local]# vim /etc/profile
添加内容
#mysql export MYSQL_HOME=/usr/local/mysql export PATH=$MYSQL_HOME/bin:$PATH
使环境变量生效
[root@localhost local]# source /etc/profile
-
创建配置文件
[root@localhost local]# vim /etc/my.cnf #如果存在此文件且有内容,清空其内容 [root@localhost local]# echo > /etc/my.cnf
写入以下内容:
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] bind-address = 0.0.0.0 #编码格式 character_set_server=utf8 init_connect='SET NAMES utf8' #安装目录 basedir=/usr/local/mysql #数据目录 datadir=/usr/local/mysql/data socket=/tmp/mysql.sock #日志目录 log-error=/var/log/mysqld.log #进程目录 pid-file=/var/run/mysqld/mysqld.pid # 0:表明字段名不区分大小写;1:区分 lower_case_table_names = 1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION max_connections=5000 default-time_zone = '+8:00'
-
初始化数据库
安装这个保证mysql安装不出错[root@localhost local]# yum install libaio
创建mysql log日志文件
[root@localhost local]# touch /var/log/mysqld.log && chmod 777 /var/log/mysqld.log [root@localhost local]# chown mysql:mysql /var/log/mysqld.log
创建 /tmp/mysql.sock文件
[root@localhost mysqld]# touch /tmp/mysql.sock [root@localhost mysqld]# chown -R mysql:mysql /tmp/mysql.sock [root@localhost mysqld]# chmod 777 /tmp/mysql.sock
创建mysql 进程pid文件
[root@localhost ~]# mkdir -p /var/run/mysqld/ && cd /var/run/mysqld/ [root@localhost mysqld]# touch mysqld.pid [root@localhost mysqld]# chown -R mysql:mysql /var/run/mysqld/ [root@localhost mysqld]# chmod 777 mysqld.pid
初始化mysql数据配置
[root@localhost mysql]# cd /usr/local/mysql/scripts/ [root@localhost mysql]# sh mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data [root@localhost mysql]# mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
以上最后一条命令执行后如果mysql初始化成功会开始运行,则此命令不会结束退出,无法通过ctrl c退出此命令来停止mysql,重开一个会话窗口,执行:ps aux | grep mysq | grep -v grep找到mysql进程号,kill -9 PID ,杀掉进程。
或者直接将mysql 添加为系统服务,执行service mysqld stop停止,具体操作请看第5步如果在初始化的过程中出错,会退出初始化命令,查看mysql日志信息:
[root@localhost local]# cat /var/log/mysqld.log
可能会出现以下问题
是因为/usr/local/mysql/data下在初始化的时候出现的新文件夹不是mysql用户和用户组权限,执行:
[root@yanhaipeng mysql]# chown -R mysql:mysql /usr/local/mysql/
-
将mysql加入系统服务,开机启动
[root@localhost data]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@localhost data]# chkconfig --add mysqld [root@yanhaipeng init.d]# service mysqld stop
mysql服务基本命令
service mysqld start|stop|restart|reload|force-reload|status
登录mysql
[root@yanhaipeng init.d]# service mysqld start [root@localhost data]# mysql -u root -p
第一次安装密码为空,直接回车
设置密码:use mysql; update user set password=password('yourpassword') where user='root'; #如果提示ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’ 则执行 update user set authentication_string=password('yourpassword') where user='root'; #刷新权限: flush privileges; quit; #重启mysql service mysqld restart mysql -u root -p 输入新的密码即可登录mysql
-
远程连接
(1).修改/etc/mysql/my.conf[root@yanhaipeng /]# vim /etc/my.cnf [root@yanhaipeng /]# service mysqld restart
找到bind-address = 127.0.0.1这一行,改为bind-address = 0.0.0.0即可,前面已经配置好了。
(2).设置远程连接账号权限
#登录mysql客户端 mysql -u root -p #添加admin用户,允许任何ip地址的电脑用admin帐户和密码(123456)来远程访问这个mysql server(用户名和密码可自定义设置)。 grant all on *.* to admin@'%' identified by '123456' with grant option; #设置root用户允许远程连接mysql数据库 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; #刷新缓存 flush privileges; #查看系统用户, #host为%的账号可用于远程连接mysql use mysql; select user,host from user; #退出mysql客户端 exit; #重启mysql服务 #service mysqld restart
(3) 开放mysql端口
mysql 默认的是3306端口,可在/etc/mysql/my.conf中配置
如果系统使用的是firewall防火墙,执行以下命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent (--permanent永久生效,没有此参数重启后失效) firewall-cmd --reload #重新载入 firewall-cmd --zone=public --query-port=3306/tcp #查看此端口 firewall-cmd --zone=public --remove-port=80/tcp --permanent #删除此开放端口
如果系统使用的是iptables 防火墙,执行以下命令:
[root@yanhaipeng /]# iptables -A INPUT -p tcp --dport 3306 -j ACCEPT [root@yanhaipeng /]# iptables -A OUTPUT -p tcp --sport 3306 -j ACCEPT [root@yanhaipeng /]# iptables -L -n #查看开启3306端口规则是否生成 [root@yanhaipeng /]# service iptables save #保存iptables 修改
navicat连接mysql
安装成功。