记录一下非root用户自行在Linux服务器上搭建MySQL的过程,作为学习资料。
查看服务器版本
uname -a
查看Linux操作系统版本。cat /proc/version
查看内核版本。cat /etc/issue
查看发行版本信息。lsb_release -a
也可以查看。
例如经过以上指令后获得服务器版本为Linux的16.04.1-Ubuntu,x86_64。
下载并安装MySQL 社区通用版
- 进入官网-DOWNLOADS-MySQL Community (GPL) Downloads-MySQL Community Server,切换到Archives,例如选择Product Version:5.7.30,Operating System:Linux-Generic,OS Version:Linux-Generic(glibc 2.12)(x86,64-bit),随后点击Download下载安装包。
- 下载完成后将安装包上传至服务器自己的目录下,解压:
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
编辑my.cnf配置文件如下(仅作为示例,可根据实际需求设置各种配置项),放在当前mysql安装目录下:
[client]
port=3306 #服务端口
socket=/home/apps/mysql/mysql.sock #指定套接字文件
[mysqld]
port=3306 #服务端口
basedir=/home/apps/mysql #mysql安装路径
datadir=/home/apps/mysql/data #数据目录
pid-file=/home/apps/mysql/mysql.pid #指定pid文件
socket=/home/apps/mysql/mysql.sock #指定套接字文件
log_error=/home/apps/mysql/error.log #指定错误日志
server-id=100 #Mysql主从唯一标识
随后进入bin目录cd bin
,后执行以下语句安装并初始化:
./mysqld --defaults-file=/home/apps/mysql/my.cnf --initialize --user=apps --basedir=/home/apps/mysql --datadir=/home/apps/mysql/data
启动mysql服务./mysqld_safe --defaults-file=/home/apps/mysql/my.cnf --user=apps &
启动成功后监听端口netstat -tln | grep 3306
3. 获取root用户的初始密码less error.log | grep root@localhost
使用密码登录bin/mysql -u root -p -S /home/apps/mysql/mysql.sock
登录成功后修改密码并刷新权限生效
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
flush privileges;
- 开启远程访问,创建用户admin并授权。
use mysql --切换至mysql数据库
select User,authentication_string,Host from user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; --允许其他主机访问
flush privileges;
create user 'admin'@'%' identified by '123456';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
select User,authentication_string,Host from user;
数据迁移
- 在原有数据库进行数据备份,例如可以再Windos端使用MySQL Workbench软件连接数据库,Management-Data Export选择要导出的数据库,需要有备份权限才可以。
- 可能会报错mysqldump xxx mismatch,此时可以再电脑上下载Windos版的MySQL,在MySQL Workbench里Edit-Preferences-Administration-Path to mysqldump Tools里选择MySQL目录bin中的mysqldump.exe即可完成备份获得.sql文件。
- 如果还是通过MySQL Workbench迁移,Management-Data Import/Restore选择要恢复的数据库文件即可。
- 如果要迁移到Linux服务器上,在服务器上进入mysql,创建一个test数据库,为防止数据库文件出现乱码,进入数据库,将编码设置为utf8,加载备份的数据库,查看数据库中的表,无误,此时也可以再远程Windows的MySQL Workbench软件里查看。
create database test;
use test
set names utf8;
source /root/Envs/yw_crm_project/backup.sql
show tables;