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所在的本机登陆
# 登陆成功,由于对一些库没有赋权限,所以你不是所有库都能看得到
上一篇: debian10安装omv
下一篇: [Ubuntu] 系统移植到另外一台电脑
推荐阅读
-
PHP程序员面试题(经典汇总,mysql为主)
-
MYSQL如何建立两个表共用一个ID字段
-
MySQL 5.6 Innodb数据页 16K vs 8K性能对比测试
-
phpmyadmin报错原因及解决办法:无法在发生异常时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装
-
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结,mysqlutf-8
-
阿里云ecs安装php 7 执行php-v 报错
-
高性能MySql进化论:常见索引类型的原理及其特点的介绍_MySQL
-
php mysql替换字符串方法
-
MySQL Performance with TokuDB_MySQL
-
关于一个很复杂的MYSQL查询排列场景的问题