centos7 需要卸载掉系统自带的 mariadb 数据库
搜索命令
rpm -qa | grep mariadb
卸载命令
rpm -e --nodeps `rpm -qa | grep mariadb`
将下载好的 mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz 的压缩包传输到 Linux 服务器中,我这里的上传目录是 /usr/local 目录下
解压
tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
重命名
mv mysql-5.6.36-linux-glibc2.5-x86_64 mysql
将 /usr/local/mysql/support-files/ 目录下的 my-default.cnf 文件 copy 到 /etc下
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
配置 /etc 目录下的 my.cnf 文件
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
创建 mysql 组
groupadd mysql
创建 mysql 用户添加到 mysql 组
useradd -g mysql mysql
移动到 /usr/local/mysql 目录下
cd /usr/local/mysql/
执行安装命令
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
报错
-bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录
需要执行如下命令
yum install autoconf
重新运行,初始化成功
增加脚本可执行权限
chmod +x /etc/rc.d/init.d/mysqld
启动服务
service mysqld start
发现报错
Starting MySQL…The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid). [FAILED]
这是由于没有初始化权限表造成的
解决办法
cd /usr/local/mysql(进入mysql安装目录)
chown -R mysql.mysql .
su - mysql(切换mysql用户)
cd /usr/local/mysql
./scripts/mysql_install_db
数据库登录时如果出现 mysql 命令找不到问题,需要建立映射,执行命令如下
ln -s /usr/local/mysql/bin/mysql /usr/bin
说明:前面是 mysql 的完整安装路径 bin 目录中的 mysql,后面是需要映射到的文件路径,因为系统会默认查找 /usr/bin 下的命令
登录
mysql -uroot -p
默认没有密码,直接进入,进入后选中 mysql 数据库可以更改 root 用户密码
mysql> update user set password=password('root') where user='root';
修改权限使 root 用户可以远程访问
# 修改root用户权限,注意后面的一个root是上面修改后的密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
# 刷新
mysql> FLUSH PRIVILEGES;