mariadb是mysql的一个分支,但要安装mysql需要删除它
执行rpm -qa|grep mariadb,查看mariadb情况,有就删除 rpm -e -nodeps mariadb....名字
查看是否已经有mysql
rpm -qa |grep mysql 有就删除
查看自己的linux的版本
-uname -a
查多少位系统 getconf LONG_BIT
https://dev.mysql.com/downloads/mysql/5.6.html#downloads
找对应的版本下载. 我这个是 GUN 就下载 linux Generic。下载后用ftp 传到服务器上,我放在了 home目录下
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 否则还需要修改配置文件
groupadd mysql和useradd -r -g mysql mysql
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/
进入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
解决方法:安装autoconf库 命令:yum -y install autoconf
service mysql start
查看 ps -ef|grep mysql 是否启动成功
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
启动客户端:mysql -uroot -p
第一次进入客户端不需要密码,后面可以自己再设置密码
mysqladmin -uroot password 'yourpassword'
输入命令 vi /etc/profile
export MYSQL_HOME=/usr/local/mysql/
export PATH=$PATH:$MYSQL_HOME/bin
配置好mysql环境变量后,我们往后登录mysql就不用再去到/usr/local/mysql/bin目录才能登录了,现在可以在任意目录下登录mysql了
1、添加mysql服务
输入命令 chkconfig --add mysql 【mysqld -install】
2、设置mysql服务为自动
输入命令 chkconfig mysql on
远程连接我们自然要用’%’来匹配比较好,或者你可以指定某个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端口,再测试就成功了