deepin linux 下 MySQL5.7.27 安装部署

扶醉桌前 提交于 2019-12-16 12:50:56

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一、前提准备

 

# 解压文件
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
# 移动 MySQL 目录到 /usr/local 目录下
sudo mv mysql-5.7.27-linux-glibc2.12-x86_64 /usr/local
# 创建软链接 mysql 指向 mysql-5.7.27-linux-glibc2.12-x86_64
sudo ln -s /usr/local/mysql-5.7.27-linux-glibc2.12-x86_64/ /usr/local/mysql
  • 3. 删掉之前安装的残余文件信息
    本人之前有用过 apt-get 命令装过 MySQL,所以需要删除一些残余文件(未安装过的可忽略此步),具体操作如下:

 

dpkg -l |grep mysql       查询是否还有安装的残余信息

 

dpkg --purge mysql-common      删除残留的配置信息

 

find / -name mysql    查找相应的 mysql 目录
rm -rf     记得删除无用的残留文件

 

# 删除之前残留的 mysql 用户、用户组
userdel mysql   
groupdel mysql

二、安装部署 MySQL 服务

  • 1. 执行初始化

新增一个 mysql 用户组、用户(设置为不能登录的用户)

 

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false/ mysql    # 设置为不能登录系统的用户

进入 /usr/local/mysql 目录,新建一个 mysql-files 目录,并修改其信息如下:

 

sudo cd /usr/local/mysql
# 新建目录 mysql-files
sudo mkdir mysql-files
# 将 mysql-files 所有者和所在组设置为 mysql:mysql
sudo chown mysql:mysql mysql-files
# 设置 mysql-files 权限为 rwxr-x---
sudo chmod 750 mysql-files

最后执行初始化命令(执行成功后,最后一行会有 root 初始密码),如下:

 

bin/mysqld --initialize --user=mysql 

  • 2. 生成证书

使用如下命令生成证书:

 

sudo bin/mysql_ssl_rsa_setup        

  • 3. 启动 MySQL
    重新改回权限,并在后台启动 MySQL 服务,命令如下:

 

# 修改会权限      
sudo chown -R root .  # . 代表 /usr/local/mysql ,先把它递归修改为属于 root 用户 
sudo chown -R mysql data mysql-files #再递归改这些目录
# 在后台启动    
sudo bin/mysqld_safe --user=mysql &

  • 4.打开新的终端,使用如下命令进入 MySQL 命令行界面:

 

# 密码在初始化时的最后一行
bin/mysql -u root -p
# 重新设置 root 密码
set password=password('***')

  • 5. 修改 PATH 路径
    通过修改 /etc/profile 文件修改 PATH 路径,具体命令及内容如下:

 

# 修改 PATH 路径
vim /etc/profile
# 添加如下内容
MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH

修改PATH

使用 source /etc/profile 更新 PATH 路径修改。
注意:deepin 中使用 source /etc/profile 后,只能在当前终端使用修改后的 PATH 路径命令,想要全局使用,得注销或者重启。

三、添加进系统服务

重启之后发现登录不上去,使用 mysql -u root -p 后,报了以下的问题,连接不上 MySQL 数据库界面,问题如下:

 

后来 Google 了一下,应该是没有将 MySQL 服务加进系统服务去启动的原因,使得没有在 /tmp 目录下生成 mysql.sock 文件,使用如下方法将 mysql.server 服务加进系统服务中,重启 mysql.server 服务即可解决问题。

 

# 将 MySQL 服务添加进系统服务中
cd /usr/local/mysql/support-files/
sudo cp support-files/mysql.server /etc/init.d/mysql.server
sudo service mysql.server

重启成功

在使用系统的 service 启动 mysql.server 服务即可。service 方法使用如下:

 

# 查看服务状态
sudo service mysql.server status
# 启动 mysql.server 服务
sudo service mysql.server start 
# 关闭 mysql.server 服务
sudo service mysql.server stop 


需要配置/etc/my.cnf

 

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql/mysql5.7.28
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysql5.7.28/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
# 取消密码验证
#kip-grant-tables

socket=/usr/local/mysql/mysql5.7.28/tmp/mysql.sock

[client]
port=3306
socket=/usr/local/mysql/mysql5.7.28/tmp/mysql.sock

 

报错的解决方案:

MySQL 1130 - Host 127.0.0.1 is not allowed to connect to this MySQL server

在开发中为了让开发更方便,在本地配置环境,希望可以直接访问服务器上的MySQL数据库,更方便的管理数据库,

需要在本地远程连接linux服务器的本地数据库,直接用数据库管理工具连接出现如下报错1130 - Host 127.0.0.1 is not allowed to connect to this MySQL server:

这个错误说明MySQL没有允许远程登录,只要授权可以远程登录就ok了。

 

登录到服务器上,mysql -u root -p 回车,password:(输入你的密码),进入到mysql之后输入命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;  /*把命令中的‘yourpassword’换成你的数据库密码*/

 

修改以后再键入刷新使用权限命令:

FLUSH PRIVILEGES

 

这里不输入刷新权限命令的话也可以重启mysqld,命令:

service mysqld restart

完成后使用数据库管理工具连接服务器一切正常!


 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!