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
安装错误提示信息一
解决方法:安装相关依赖[[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.
安装错误提示信息二
解决方案:重新执行如下语句:
[[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
这会终于安装成功了!!!
安装成功提示信息
注:图中我标红的地方为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
配置文件信息
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
再次登录成功。
登录成功后的提示信息
可看到mysql的版本信息
12 查看数据库
mysql> show databases; #展示了四个默认的数据库
原始数据库信息
14 查看mysql数据库的表信息
mysql> use mysql;
mysql> show tables;
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防火墙中有没有放开端口3306的访问权限,具体操作如下:
[[email protected] bin]# cd /etc/sysconfig/
[[email protected] sysconfig]# vi iptables
增加3306端口的访问权限
添加我标红的部分
注:我这里配置的是mysql默认的端口,如果端口号改过的,改成相应的即可。
保存后,重启防火墙[[email protected] sysconfig]# /etc/init.d/iptables restart。
大功告成!!!