以下是一篇关于卸载MariaDB并通过yum在线安装Mysql的教程。
首先,你需要找出已安装的MariaDB包的具体名称。可以使用以下命令列出所有已安装的MariaDB包:
删除命令(安装mysql不一定需要卸载)
yum -y remove +【上图的文件名】或者rpm -e --nodeps +【上图的文件名】
下载mysql软件源
(1)找到对应linux的版本进行下载、
(2)下载mysql的rpm软件源
下载地址:
https://dev.mysql.com/downloads/repo/yum/
或
http://repo.mysql.com
(1)安装软件源。通过yum安装方法,会直接添加mysql环境变量和启动服务
(2)安装MySQL服务器:community-server
(1)修改配置文件。vim /etc/my.cnf添加配置
(2)启动服务并查看服务状态
(1)查看mysql初始密码
(2)修改密码验证策略。通过初始密码登录mysql
【注】:当执行 SHOW VARIABLES LIKE 'validate_password.%' 时,显示的为 EMPty set, 1 warning(0.00 sec)。
出现这个问题是因为并没有安装validate_password插件。具体操作如下:
# 每个平台的文件名后缀都不同对于Unix和类Unix系统为.so,对于 Windows为.dll
若出现ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
授权远程用户连接(改表法)
查看3306端口是否开启
发现没有,然后需要在vim /etc/my.cnf文件中添加port = 3306然后保存
若还是不行,则登录到数据库里
(1)查看port参数
注意端口果然变成0了
(2)查看skip_networking参数
果然设置了skip-networking参数,这个就是导致mysql监听的端口变成0,并且通过网络无法登录数据库的主要原因了
(3)查看cnf文件中是否有skip-networking参数或skip-grant-tables参数
注释掉后重启mysqld服务,再次查看3306端口就有了
(1)ERROR 1146 (42S02): Table 'mysql.user' doesn't exist
一般是/etc/my.cnf写的地址与安装时指定的不一样
(2)ERROR! The server quit without updating PID file (/usr/local/mysql/data/x86a.pid)
apt-get install mariadb-server libhdf5-dev libmunge-dev libmariadb-dev-compat
下载mysql并添加用户
下载地址:
https://downloads.mysql.com/archives/community/
或
http://mirrors.sohu.com/mysql/
MySQL开在root上意味着它可以在系统的任何位置写任何文件,MySQL 开在mysql用户上,保证它对系统大部分位置不可写,从而MySQL即使被攻击,也可以限制它对整个系统的影响。
当让MySQL运行的时候使用一个独立的账号和用户组时,该用户和用户组权限是可以控制的。当系统中文件的权限未设定给Mysql用户以及用户组时,Mysql用户无法进行读写执行操作。而如果MySQL被黑了,可以通那么开始拿到的权限就是那个创建的账号而不是默认的root,我们在编译安装的时候创建一个mysql组和一个mysql用户,并把datadir和安装目录属主改为mysql。
在MySQL启动的时候,单进程mysqld,该进程的属主就是mysql,这样就保证了mysql服务的独立性,即使mysql服务被黑掉,得到了mysql用户权限,也不会影响整个系统的安全。
make && make install
(1)vim /etc/my.cnf
修改配置文件权限
chmod 600 /etc/my.cnf
【注意】:所有my.cnf指定的目录mysql用户都要有读写权限。symbolic-links符号链接支持在别的目录下存放mysql的数据库文件,当我们mysql数据盘满了以后,可以启动symbolic-links=1,把mysql的数据放在别的目录下,然后链接到mysql的datadir目录下。
(2)设置mysql目录权限
(1)将mysql设置成系统服务,生成服务启动脚本 (2)添加MySQL开机自启 (3)配置环境变量
(1)初始化数据库 如果无法启动mysql 【注意】:初始化完后会生成一个初始密码,在界面上显示,保存下来。一会修改密码需要用到:omrI&?hGw8li(--initialize-insecure是不设置密码) (2)启动mysql服务 (3)修改密码
(1)错误:CMake Error at cmake/boost.cmake:194 (MESSAGE):
问题描述:高版本mysql需要boots库的安装才可以正常运行
根据错误提示,进行处理
i、在/usr/local下创建一个名为boost的文件夹
mkdir -p /usr/local/boost
ii、进入这个新创建的文件夹然后下载boost
下载地址:
https://sourceforge.net/projects/boost
或
https://sourceforge.net/projects/boost/files/boost/
iii、解压
tar -zxvf boost_1_59_0.tar.gz -C boot
iv、继续cmake,添加下面的部分
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost(2)错误:CMake Error at cmake/readline.cmake:64 (MESSAGE):
问题描述:没有安装ncurses-devel
i、解决办法:yum install ncursrs-devel -y
然后重新编译
ii、源码安装ncurses-devel方式解决
下载地址:
http://ftp.gnu.org/gnu/ncurses/
(3)错误:CMake Error at rapid/plugin/group_replication/rpcgen.cmake:100 (MESSAGE):
解决办法:安装rpcsvc
下载地址:
https://GitHub.com/thkukuk/rpcsvc-proto/releases
(4)openssl
(5)Package 'libtirpc', required by 'virtual:world', not found
解决方法:安装libtirpc-devel(
https://rpmfind.net/linux/RPM/
)
(6)mysql登陆报错mysql Segmentation fault (core dumped)
解决办法:在源码包里,编辑文件mysql-5.6.38/cmd-line-utils/libedit/terminal.c(mysql安装包所在路径)
把terminal_set方法中的char buf[TC_BUFSize];这一行注释,再把area=buf;改为area=NULL;
更改后如下部分
然后重新编译即可