一、安装
1、上传安装文件
2 xshell 命令查看
3、将安装包移动到user/local目录下
4、解压mysql安装包
tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz1
重命名文件
mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
5、建立软连接
建议一般不要修改默认文件名,通过软连接来完成
ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql
6、创建mysql用户
useradd mysql
7、建立mysql数据目录,并赋予权限
7.1在根目录下
mkdir -p data
cd data
mkdir -p mysql
7.2授权
chown mysql:mysql -R /data/mysql
看到data 的用户变成了mysql
8、配置mysql参数
在/etc目录下创建my.cnf文件,并进行配置
vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3310
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
!includedir /etc/my.cnf.d
这里只是简单的配置mysql运行的几个参数。
注意:log-error 一定要配置,因为如果mysql启动错误,可以从日志文件中找到错误原因。其次bind—address配置0.0.0.0是为了监听所有的连接。 编辑完后 按esc 后按住 shift+: 输入 wq表示保存并退出 。
9、mysql初始化
9.1注意这里需要进到刚刚解压mysql的bin目录下
cd usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看错误日志文件是否有错
vim /data/mysql/mysql.err
可以看到日志有错误提示,提示与刚刚初始化命令中datadir相关
看到刚刚初始化命令中datadir前面少了–,所以大家安装的时候一定要细心。
9.2 重新初始化
注意重新初始化之前一定要把datadir目录下的文件清空,不然初始化还会报错进入到datadir目录 删除数据
cd /data/mysql/
rm -rf *
删除后,重新初始化
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
再次查看错误日志文件是否有错
vim /data/mysql/mysql.err
可以看到到日志文件没有报错,而且有了临时密码,表示初始化成功
10.登陆mysql
10.1、初始化成功后,查看初始化密码
cat /data/mysql/mysql.err |grep password
并把密码复制下来
到这里的时候,发现这个xshell背景太丑,字体太小。设置了下xshell背景,效果下面可见。
10.2、登录mysql
./mysqladmin -u root -p password
并输入刚刚复制的密码,但是 却提示不能通过mysql.sock文件实现连接
三、安装相关问题
1、没有生成mysql.sock文件
查找mysql.sock 文件
find / -name mysql.sock
表示没有找到mysql.sock文件。
所以就尝试重启服务器即我的虚拟机,看服务器在启动时会不会重新创建该文件,然而重启后并没有卵用
又百度了下说连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。可以通过tcp/ip协议来连接。
即:
mysql -uroot -h 127.0.0.1 -p
但是 又又报错了
2 配置环境变量
表示不认识mysql命令,到目前位置还未配置环境变 即没有将mysql的bash加到path中。
编辑环境变量文件
vim /etc/profile
在后面添加系统bin路径以及mysql解压路径
export MYSQL_HOME=/usr/local/mysql/
export PATH=$PATH:$MYSQL_HOME/bin
配置好后再重启Xshell
然后再执行
mysql -uroot -h 127.0.0.1 -p
然后再输入刚刚临时文件的密码,但是 又又又报错了, 我内心快要崩溃了
到这里,又去问度娘,可能mysql服务没有启动,对啊,刚刚重启了虚拟机,并没有启动mysql服务。
3、启动mysql服务
service mysql start
mysql启动成功后,再通过tcp/ip连接,就在以为快要打工告成的时候,居然又报了同样的错
4、带端口号的tcp/ip 连接
那到这里,估计就是端口号的问题了, 百度了下mysql -h -uroot -p 命令默认的窗口是3306, 而我配置文件里的窗口是3310所以这里还需要指定端口号,真的是想要与众不同,结果可把自己坑惨了……
mysql -h 127.0.0.1 -uroot -p --port=3310
然后再输入密码:
终于等到你……
5、重新设置密码
这里需要先重新设置密码,不然进行数据库操作
set password=password('123456');
flush privileges; 并刷新权限
如果不先设置密码会提示如下错
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
然后数据库就可以使用了
6、解决不能生成mysql.sock文件问题
mysql.sock 是在配置文件my.cnf中。因为原来的位置不能生成,所以把原来的配置注释掉,重新配置一个路径。
6.1修改my.cnf
vim /etc/my.cnf
6.2 重启mysql 服务
service mysql restart
重启服务后我们进入新配置的socket路径下看到了mysql.sock身影
通过这个socket文件连接数据库,成功连接
mysql -u root -p -S /data/mysql/mysql.sock
建立软连接
ln -s /data/mysql/ /tmp/
然后也可以使用tmp路径登陆
mysql -u root -p -S /tmp/mysql.sock
四、设置远程连接
1、设置user表
如果要远程访问数据库,只需要把拥有全部权限的root账号对应的记录的Host字段改为%就可以了。
update user set Host = '%' where Host = 'localhost' and user = 'root';
select host,user from user;
在本地windows环境下访问虚拟机上的mysql
查看虚拟机的的ip
ifconfig -a
2、本地dos访问虚拟机的mysql
mysql -h 192.168.85.128 -uroot -p --port=3310
可以正常访问:
经过一天的折腾总算是把mysql安装成功,其中也通过度娘解决了很多问题,对linux命令仍然不熟悉,不理解其中意思,很多只是照着葫芦画瓢,linux学习任重而道远。