linux环境下安装mysql

前情提要:该文记录了我从零开始安装的相关步骤,以及再安装过程中遇到的一些问题及对应的解决方法,写下此文一方面是给自己留个文档参考,节省以后再次安装时的时间,一方面给看到此文并且又这方面需求的小伙伴提供一个方案。

安装步骤:

1 创建目录 mkdir /usr/local/mysql(存放mysql文件地址)

2 进入Tools目录cd /home/stoneBoy/Tools(自定义的压缩包存放目录)

3 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-i686.tar.gz下载安装包(也可以先下载安装包在传到服务器上,我这里采用的是非源码包安装,rpm包安装类似,不过要注意安装相关依赖包)

4 解压并复制

[[email protected] Tools]# tar -xvf mysql-5.7.22-linux-glibc2.12-i686.tar.gz [[email protected] Tools]# mv mysql-5.7.22-linux-glibc2.12-i686/* /usr/local/mysql/

5 创建Data目录

[[email protected] Tools]# mkdir /usr/local/mysql/data

6 检查mysql组和用户是否存在,不存在则创建

[[email protected] mysql]# cat /etc/group | grep mysql

[[email protected] mysql]# cat /etc/passwd |grep mysql

创建

[[email protected] mysql]# groupadd mysql

[[email protected] mysql]# useradd -r -g mysql mysql #useradd -r参数表示mysql用户是系统用户,不可用于登录系统

7 更改mysql目录下所有的目录及文件所属组和用户

[[email protected] mysql]# chown -R mysql.mysql /usr/local/mysql/

8 安装和初始化数据

[[email protected] bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/--datadir=/usr/local/mysql/data/

此时如果报如下错误:

./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

linux环境下安装mysql

安装错误提示信息一

解决方法:安装相关依赖[[email protected] bin]# yum -y install numactl

重新执行上述安装语句,会出现如下错误:

2018-05-22T14:16:51.508076Z 0 [ERROR] Can't find error-message file '/usr/local/mysql/--datadir=/usr/local/mysql/data/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.

linux环境下安装mysql

安装错误提示信息二

解决方案:重新执行如下语句:

[[email protected] bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

这会终于安装成功了!!!

linux环境下安装mysql

安装成功提示信息

注:图中我标红的地方为mysql root用户的初始化密码(最好先复制保存一份,后面首次登录时要用到的)

9 配置my.cnf文件(下面文本是我设置的,根据自己需要调整)

[mysqld]

#datadir=/var/lib/mysql

character_set_server=utf8

basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data/

port = 3306

socket=/var/lib/mysql/mysql.sock

#user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

linux环境下安装mysql

配置文件信息

10 将mysql的服务脚本放到系统服务中(如果不这配置这项的话,启动mysql可通过./mysqld_safe --user=mysql &命令启动)

[[email protected] support-files]# cp mysql.server /etc/init.d/mysql

这样就可以通过如下命令启动、停止、重启服务:

[[email protected] bin]# service mysql start

[[email protected] bin]# service mysql stop

[[email protected] bin]# service mysql restart

11 将mysql服务启动后登录

查看是否登录成功:[[email protected] bin]# ps -ef|grep 3306

能查到进程号说明启动成功

[[email protected] bin]# ./mysql -u root -p

报错:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

提示找到sock文件,我在my.cnf配置文件中配置的是socket=/var/lib/mysql/mysql.sock

解决方案:创建软连接,将/tmp/mysql.sock指向/var/lib/mysql/mysql.sock

[[email protected] bin]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

再次登录成功。

linux环境下安装mysql

登录成功后的提示信息

可看到mysql的版本信息

12 查看数据库

mysql> show databases; #展示了四个默认的数据库

linux环境下安装mysql

原始数据库信息

14 查看mysql数据库的表信息

mysql> use mysql;

mysql> show tables;

linux环境下安装mysql

mysql默认数据表信息

13 修改root密码(原始密码不好记,改成自己容易记住的密码,记得一定要先登录成功才可改密码,语句后面的“;”不能省)

mysql> set password=password("root");

14 设置远程登录权限

mysql> grant all privileges on *.* to'root' @'%' identified by 'root';

mysql>flush privileges; (重新加载一下mysql权限,这步不要省了)

mysql> quit; (退出登录)

15 远程连接测试

linux环境下安装mysql

远程连接测试

如果连接失败,看下linux防火墙中有没有放开端口3306的访问权限,具体操作如下:

[[email protected] bin]# cd /etc/sysconfig/

[[email protected] sysconfig]# vi iptables

linux环境下安装mysql

增加3306端口的访问权限

添加我标红的部分

注:我这里配置的是mysql默认的端口,如果端口号改过的,改成相应的即可。

保存后,重启防火墙[[email protected] sysconfig]# /etc/init.d/iptables restart。

大功告成!!!