Linux 阿里云服务器 CentOS 7 安装 MySQL 5.7。mysql
1、准备工做
一、MySQL 官网下载 MySQL 5.7.23 :mysql-5.7.23-linux-glibc2.12-x86_64.tar.gzlinux
二、检查是否已经安装过 MySQL :sql
$> rpm -qa | grep mysql
若是已经安装过其余版本的 MySQL,使用如下命令卸载:$> rpm -e 已经存在的MySQL全名数据库
三、添加用户组,用专门管理mysql,提升安全 (非必须,能够跳过 )安全
$> groupadd mysql $> useradd -r -g mysql -s /bin/false mysql
四、安装libaio1 :服务器
libaio1 是 MySQL 的安装依赖 必须先安装(前提条件)
$> yum install libaio-devel.x86_64
2、安装
一、解压 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 并移到 /usr/local/mysql 文件夹下:socket
$> tar -xvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz -C /usr/local $> mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql $> chown -R mysql:mysql mysql
二、配置 MySQL 的服务,将 support-files 下的 mysql.server 复制到 /etc/init.d/ 下并取名mysql :tcp
$> cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
三、修改/etc/init.d/mysql的参数:ide
$> vi /etc/init.d/mysql
#修改以下内容 basedir=/usr/local/mysql datadir=/usr/local/mysql/data
四、配置 MySQL 的配置文件,阿里云
其余版本mysql的support-files目录下有默认的配置文件, 5.7.23 这个版本没有,须要本身准备,下面提供一份简单基本配置, 在/etc/ 下新建my.cnf ,有些可能会提示已经存在,由于默认装的数据库配置文件也在,直接覆盖就行:
注意:在 my.cnf 文件所在目录,看是否有一个叫 my.cnf.d 的文件夹,
若是没有须要新建一个,否则后面安装的时候会报错。
$> touch /etc/my.cnf $> vi /etc/my.cnf
#my.cnf内容以下 # *** 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. [client] port = 3306 #普通项目的编码方式能够设置成 utf8 #这里设置成utf8mb4,是由于个人项目须要存储 emoji 表情, #这种表情虽然是utf8编码,可是一个字符须要占用4个字节,而MySQL utf8编码只能存放3字节的字符。 #在MySQL 5.6 以上版本中,能够设置编码为utf8mb4,这个字符集是utf8的超集。 default-character-set=utf8mb4 [mysqld] # 通常配置选项 basedir = /usr/local/mysql datadir = /usr/local/mysql/data port = 3306 #普通项目的编码方式能够设置成 utf8 #这里设置成utf8mb4,是由于个人项目须要存储 emoji 表情, #这种表情虽然是utf8编码,可是一个字符须要占用4个字节,而MySQL utf8编码只能存放3字节的字符。 #在MySQL 5.6 以上版本中,能够设置编码为utf8mb4,这个字符集是utf8的超集。 character-set-server=utf8mb4 default_storage_engine = InnoDB sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION socket=/var/lib/mysql/mysql.sock # 下面一行是忽略大小写的配置,不想忽略的话能够删除,或者把值改为 0; lower_case_table_names=1 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the [mysqld_safe] log-error=/var/log/mysql/mariadb/mariadb.log pid-file=/var/run/mysql/mariadb/mariadb.pid # include all files from the config directory !includedir /etc/my.cnf.d
五、建立相关目录文件:
$> mkdir -p /var/log/mysql/mariadb $> touch /var/log/mysql/mariadb/mariadb.log $> chown -R mysql:mysql /var/log/mysql $> mkdir /var/run/mysql $> chown -R mysql:mysql /var/run/mysql $> mkdir /var/lib/mysql $> chown -R mysql:mysql /var/lib/mysql $> ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
六、切换到mysql的bin目录执行下面命令初始化数据库:
$> rm -rf /usr/local/mysql/data/* (没有/usr/local/mysql/data目录能够不执行) $> ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
七、执行完毕后会自动生成默认的初始密码在执行记录中,注意复制出来!
八、启动mysql 服务,下方会提示启动成功字样
$> service mysql start
启动成功会显示:Starting MySQL [ OK ! ]
九、配置一下mysql的环境变量
$> cd /etc/profile.d $> touch mysql.sh $> vi mysql.sh
#mysql.sh添加以下内容 MYSQL_HOME=/usr/local/mysql PATH=$PATH:$MYSQL_HOME/bin export MYSQL_HOME PATH
$> source /etc/profile
3、登陆
一、登陆
$> mysql -uroot -p # 输入默认的初始密码
二、修改密码
mysql> set password=password('新密码');
三、开启远程登陆
3.一、设置mysql的远程登陆:
# grant all privileges on 库.表 to 用户@'%' identified by '用户密码'; mysql> grant all privileges on *.* to root@'%' identified by 'root密码'; mysql> flush privileges;
3.二、设置防火墙:
# 设置防火墙: $> firewall-cmd --zone=public --add-port=3306/tcp --permanent # 从新载入: $> firewall-cmd --reload # 查看: $> firewall-cmd --zone= public --query-port=3306/tcp 或 firewall-cmd --zone=public --list-ports
四、设置开机自启(非必须,不影响使用):
$> chkconfig --list $> chkconfig --add mysql $> chkconfig mysql on # 而后使用chkconfig --list命令再次查看自启服务列表, # 会看到mysql的2-5都显示开(有些显示的是 on); # 说明mysql服务会随机器启动而自动启动
而后就能够导入 SQL 文件建表跑服务了。
若是想要关闭 mysql 服务:
$> service mysql stop