1.删除mariadb和mysql
mariadb是mysql的一个分支,但要安装mysql需要删除它
执行rpm -qa|grep mariadb,查看mariadb情况,有就删除 rpm -e -nodeps mariadb…名字
查看是否已经有mysql
rpm -qa |grep mysql 有就删除
2.下载mysql安装包
查看自己的linux的版本
-uname -a
查多少位系统 getconf LONG_BIT
https://dev.mysql.com/downloads/mysql/5.6.html#downloads
找对应的版本下载. 我这个是 GUN 就下载 linux Generic。下载后用ftp 传到服务器上,我放在了 home目录下
3.复制jar包、解压
cp mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz /usr/local
tar -xvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
把解压后的文件夹重命名 为mysql。(这是linux下默认的mysql安装目录)
mv mysql-5.6.39-linux-glibc2.12-x86_64 mysql
注意:一定要解压在 usr/local下,并且名为mysql 否则还需要修改配置文件
4.添加用户组和用户
groupadd mysql和useradd -r -g mysql mysql
5.修改配置文件
1.复制 cp support-files/my-default.cnf /etc/my.cnf (mysql 启动时自动读取)
2.编辑 my.cnf 解决乱码问题 vi /etc/my.cnf 加上下面内容
[mysql]
default-character-set=utf8 表示解决客户端乱码问题)
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8(表示解决服务端乱码问题)
3.复制mysql.server 到/etc/init.d/ 目录下 【把启动脚本放在初始化目录,可以直接service mysql start 这样启动mysql】
输入命令 cp mysql.server /etc/init.d/mysql (mysql是服务名)
注意: /etc/init.d/ 目录,等效于注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services记录有那些服务
4、修改/etc/init.d/mysql 参数
输入命令 vi /etc/init.d/mysql
给与两个目录位置
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
5、给目录/usr/local/mysql 更改拥有者
输入命令 chown -R mysql:mysql /usr/local/mysql/
6.初始化数据库
进入mysql下的scripts cd scripts,如果你看到mysql_install_db
就输命令
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
生成出一个data目录,代表数据库已经初始化成功。
网上查阅说这个是老版本,新版本用。我的是老版本
新版本: 初始化
输入命令 ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
如果碰到报错碰到 please install the following Perl modules before executing ./mysql_install_db
解决方法:安装autoconf库 命令:yum -y install autoconf
7.启动myql
service mysql start
查看 ps -ef|grep mysql 是否启动成功
8.把mysql放到默认路径
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
启动客户端:mysql -uroot -p
第一次进入客户端不需要密码,后面可以自己再设置密码
mysqladmin -uroot password ‘xxx’
或 mysql> set password=password(‘新密码’);
9.更改环境变量
输入命令 vi /etc/profile
export MYSQL_HOME=/usr/local/mysql/
export PATH=$PATH:$MYSQL_HOME/bin
配置好mysql环境变量后,我们往后登录mysql就不用再去到/usr/local/mysql/bin目录才能登录了,现在可以在任意目录下登录mysql了
10.设置mysql开机自启
1、添加mysql服务
输入命令 chkconfig --add mysql 【mysqld -install】
2、设置mysql服务为自动
输入命令 chkconfig mysql on
11.设置数据库可以外网连接
远程连接我们自然要用’%’来匹配比较好,或者你可以指定某个IP
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
上句话的意思就是使用root在任意一台计算机上面以密码“123456”来连接,你如果在远程计算机上面使用密码“123”是无法连接的,包括你在本地使用mysql -uroot -p 密码为123456也无法连接。
当然执行上面一句SQL我们还需要刷新下缓存区,使之生效
mysql>FLUSH PRIVILEGES
经过研究,其实还有一种更加方便的修改root的远程启用方式。
mysql>use mysql;
mysql>update user set host='%' where user='root' AND host='localhost';
mysql>FLUSH PRIVILEGES;
这种方法的好处就是在于 不用直接的修改用户的密码,而且采用经常使用的sql比较熟悉。
我用的是update user set host=‘%’ where user=‘root’ AND host=‘localhost’;意思是在哪里的ip用这个账号都能登录
,修改之后,发现原本的root用户无法登陆了,只能用无密码的root用户登录(但没有原来的库)重启一下实例就好了。
然后用navicat测试,连接失败,需要打开阿里云安全组的3306端口,再测试就成功了
附录:另外的安装方式
1 上传MySQL5.6的tar包
创建目录:mkdir /usr/local/src/mysql5.6
上传:MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar 到上面的目录中
2 安装
第一步:解压
命令:tar -xvf MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar
第二步:检测是否已经安装了mysql
命令:rpm -qa | grep mysql
如果已经安装了,将其卸载,如:
rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
第三步:安装MySQL的服务端
命令:rpm -ivh MySQL-server-5.6.34-1.rhel5.x86_64.rpm
第四步:安装MySQL的客户端
命令:rpm -ivh MySQL-client-5.6.34-1.rhel5.x86_64.rpm
第五步:查看MySQL服务运行状态
命令:service mysql status
第六步:启动MySQL服务
命令:service mysql start
第七步:使用root账号登录mysql
在安装mysql server时有句提示:
注意:这个密码是不安全的,所有需要修改初始密码。
使用密码登录mysql账号:mysql -uroot -p
修改root密码:SET PASSWORD = PASSWORD(‘root’);
3 开机自动启动设置
加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on
查询列表:
chkconfig
说明:都没关闭(off)时是没有自动启动。
4 开启远程访问
登录:
mysql -uroot –proot
设置远程访问(使用root密码):
grant all privileges on . to ‘root’ @‘%’ identified by ‘root’;
flush privileges;
退出mysql,在centos环境下打开3306防火墙
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status