【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
一、前提准备
- 1. 下载 MySQL 压缩包,Oracle官方解压包下载地址 ,Oracle官方安装参考地址
- 2. 解压文件
# 解压文件
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
完成后使用数据库管理工具连接服务器一切正常!
来源:oschina
链接:https://my.oschina.net/u/2618715/blog/3143510