欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Debian10安装mysql

程序员文章站 2022-07-03 21:58:49
...

考虑到多数正式环境的服务器是无法连接互联网的,因此,这里使用的是离线安装的方式。

1 清理以前Mysql版本

  • 清理以前版本,没有就拉倒

2 安装libaio library

官网说,Mysql依赖这个库,没有的话,后面会报错。

  • yum (此处不应该出现,因为本篇是Debian10的安装)
shell> yum search libaio  # search for info
shell> yum install libaio # install library
  • apt
shell> apt-cache search libaio # search for info
shell> apt-get install libaio1 # install library,注意这个1

3 安装命令

3.1 创建mysql用户组

shell> groupadd mysql # 添加一个Mysql的组

3.2 创建mysql用户,并将其添加到mysql用户组里面

shell> useradd -r -g mysql -s /bin/false

这个useradd -r -g mysql -s /bin/false有点不太好懂

说简单一点就是不让mysql用户有登陆系统的权限

# 解压,一般是/usr/local。也可以自己选,我这里自己选的一个地方
shell> mv mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz /home/pythonbug/app/Mysql

shell> cd /home/pythonbug/app/Mysql

shell> tar -zxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
# 解压出来的名字有点长,搞个符号链接简化一下
shell> ln -s mysql-5.7.28-linux-glibc2.12-x86_64/ mysql5.7

shell> cd mysql5.7/

# 下面这玩意目录也没看出来有啥用,反正官网这么做的,好像是限制导入导出
shell> mkdir mysql-files
shell> sudo chown mysql:mysql mysql-files/
shell> sudo chmod 750 mysql-files/
# 初始化数据目录,结果报错
shell> bin/mysqld --initialize --user=mysql
# libnuma.so.1: cannot open shared object file:

# 安装一下,我这边是基于Debian的
shell> sudo apt-get install libnuma-dev

# 假如你这边是跟我一样自己选的一个位置安装的Mysql,而不是/usr/local/mysql的话。还是会报错,解决的办法就是直接指定你安装的目录
shell> bin/mysqld --initialize --user=mysql --basedir=/home/pythonbug/app/mysql5.7 --datadir=/home/pythonbug/app/Mysql/mysql5.7_data

# 当然了,也支持配置文件的方式
shell> mkdir etc/
shell> cd etc/
shell> vim my.cnf
# my.cnf内容如下
[mysqld]
basedir=/home/pythonbug/app/Mysql/mysql5.7
datadir=/home/pythonbug/app/Mysql/mysql5.7_data
# 通过配置文件初始化
sudo bin/mysqld --defaults-file=/home/pythonbug/app/Mysql/mysql5.7/etc/my.cnf --initialize --user=mysql

# 注意,前面说过,初始化命令可以随便执行。但是当指定了datadir之后,如果再执行初始化命令,就会报错,提示datadir已经不为空了,所以这里需要注意一下。所以,这里应该是,如果是已经执行过指定了datadir的命令的话。下一次执行的初始化的命令时候就不需要再带着了。如果带着的话,它就认为你是要指定一个新的datadir,那么新的datadir目录应该是空的才对。
# 注意,成功之后。这里会给一个随机密码,下面是要用到的
# 设置一下环境变量,把mysql5.7/bin添加到环境变量中
# 此处环境变量的添加不再赘述
shell> source ~/.profile
shell> mysql -u root -p

# 报错
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

# 装一下
shell> sudo apt-get install libncurses5

# 再来登陆
shell> mysql -u root -p
# 继续报错
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

# 查阅资料后得知,Mysql的服务没起来
shell> ps -ef|grep mysql
[out] 啥也没返回
shell> cd mysql5.7/support-files

# 由于我们这里是自己指定的datadir,basedir,所以我们需要修改一下mysql.server文件
shell> vim mysql.server
# 找到
basedir=
datadir=

# 直接把自己的路径填上去就行,如果你用的默认的,这里就不需要修改。
# 启动Mysql服务
shell> sudo ./mysql.server start
shell> mysql -u root -p
# 终于特么的登陆上去了
# 重新修改一下密码
shell> ALTER USER 'root'@'localhost' IDENTIFIED BY '5201314'

4 远程连接

# 先查一下端口号
mysql> show variables like 'port';

# 安全起见,创建一个新用户用于远程登陆
mysql> create user 'xiaoming'@'%';

# 刷新一下权限
mysql> flush privileges;

# 注意,%表示任意主机,localhost表示只能从server所在的本机登陆
# 登陆成功,由于对一些库没有赋权限,所以你不是所有库都能看得到
相关标签: mysql mysql