Debian10安装mysql

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

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所在的本机登陆
# 登陆成功,由于对一些库没有赋权限,所以你不是所有库都能看得到
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章