Linux(CentOS6.X)安装mysql
-
首先执行
rpm -qa|grep -i mysql
检查一下是否已经安装过mysqlmysql-libs-5.1.73-5.el6_6.x86_64
可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸载时要使用–nodeps选项忽略依赖关系
卸载老版本的库文件:
rpm -e mysql-libs-5.1.73-5.el6_6.x86_64 --nodeps
。使用wget方式直接下载rpm的bundle包,里面包含了server、client、devel等安装包:
wget https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar
下载完成后解压:
tar -xvf MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar
得到
MySQL-server-5.6.36-1.el6.x86_64.rpm
MySQL-client-5.6.36-1.el6.x86_64.rpm
MySQL-devel-5.6.36-1.el6.x86_64.rpm
MySQL-shared-5.6.36-1.el6.x86_64.rpm
MySQL-test-5.6.36-1.el6.x86_64.rpm
MySQL-embedded-5.6.36-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.36-1.el6.x86_64.rpm等rpm安装包文件。
接下来执行rpm安装命令:
rpm -ivh MySQL-server-5.6.36-1.el6.x86_64.rpm MySQL-client-5.6.36-1.el6.x86_64.rpm
安装server和client,可能安装失败,提示错误信息:warning: MySQL-server-5.6.36-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libnuma.so.1()(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64这都是因为缺少依赖的相关包造成的,解决办法是通过yum直接安装这些依赖包。
yum -y install libaio
yum -y install numactl
依赖包安装好后再次执行
rpm -ivh MySQL-server-5.6.36-1.el6.x86_64.rpm MySQL-client-5.6.36-1.el6.x86_64.rpm
来安装server和client。附上一张完整的安装过程图:注意最后的安装过程信息,后面有用。
安装成功之后,我们来启动mysql服务。执行
service mysql start
。启动成功之后,在执行mysql -uroot -p
命令登录数据库,此时提示错误:ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
因为我们没有密码。Mysql 5.6及以后版本出处于安全考虑,root密码不为空,并强制登陆之后要修改密码。所以在MySQL的安装过程中,会生成一个随机密码。但这个随机密码在哪呢?在这里感谢潇湘隐者提供的解决办法。这时候回过头去看我们MySQL的安装日志信息中:
你会看到MySQL生成了root用户的随机密码,并将这个随机密码放置在/root/.mysql_secret中。知道这个就简单了,执行more /root/.mysql_secret
查看文件内容:# The random password set for the root user at Fri Apr 21 08:16:33 2017 (local time): 4fsMZJ8tWAL6IAIJ
最后这个字符串就是随机密码,复制下来,再次执行
mysql -uroot -p
命令登录,提示输入密码的时候粘贴再回车就好了。此时我们还不能进行其它的操作,错误提示:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
提示必须要先修改密码才能进行别的操作,如图:
修改密码为root123
:mysql> set password=password('root123');
到这里还有个问题就是不能远程连接到这个数据库,因为默认是只支持本地链接的。一下是解决这个问题的方法:
切换到mysql库:mysql> use mysql
mysql> update user set host = '%' where user = 'root';
ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’
发现主键冲突了,来查看一下这个表的信息:
mysql> select host from user where user="root";
+————————-+
| host |
+————————-+
| % |
| 127.0.0.1 |
| ::1 |
| localhost.elasticsearch |
+————————-+
4 rows in set (0.00 sec)原来host已经有了%这个值,所以直接运行命令
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
http://blog.csdn.net/vampirehgg/article/details/70308256
http://blog.csdn.net/wqc19920906/article/details/52608460?locationNum=10&fps=1