一、linux下mysql的卸载
查看已经安装了的MySql的包
rpm -qa|grep -i mysql
[root@localhost ~]# rpm -qa|grep -i mysql
MySQL-client-5.6.10-1.rhel5.x86_64
MySQL-server-5.6.10-1.linux_glibc2.5.x86_64
[root@localhost ~]#
卸载这些安装了的包
rpm -e --nodeps 包名
[root@localhost ~]# rpm -e --nodeps MySQL-client-5.6.10-1.rhel5.x86_64
[root@localhost ~]# rpm -e --nodeps MySQL-server-5.6.10-1.linux_glibc2.5.x86_64
[root@localhost ~]#
删除老版本mysql的开发头文件和库
rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
[root@localhost ~]# rm -fr /usr/lib/mysql
[root@localhost ~]# rm -fr /usr/include/mysql
[root@localhost ~]# rm -f /etc/my.cnf
[root@localhost ~]# rm -fr /var/lib/mysql
[root@localhost ~]#
二、linux下mysql的安装
安装之前需要准备的包
(1)MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm:MySQL服务器;
(2)MySQL-client-5.6.10-1.rhel5.x86_64.rpm:MySQL客户端;
(3)MySQL-devel-5.6.10-1.rhel5.x86_64.rpm:Mysql开发依赖包。(可选)
安装server包
rpm -ivh MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm
出现错误conflicts with file from package mariadb-libs,删除yum remove mysql-libs
FATAL ERROR: please install the following Perl modules before executing /usr/bin/mysql_install_db:
Data::Dumper
yum -y install autoconf
[root@localhost software]# rpm -ivh MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
2007-01-02 14:56:12 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2007-01-02 14:56:12 13407 [Note] InnoDB: The InnoDB memory heap is disabled
2007-01-02 14:56:12 13407 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2007-01-02 14:56:12 13407 [Note] InnoDB: Compressed tables use zlib 1.2.3
2007-01-02 14:56:12 13407 [Note] InnoDB: CPU does not support crc32 instructions
2007-01-02 14:56:12 13407 [Note] InnoDB: Using Linux native AIO
2007-01-02 14:56:12 13407 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2007-01-02 14:56:12 13407 [Note] InnoDB: Completed initialization of buffer pool
2007-01-02 14:56:12 13407 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2007-01-02 14:56:12 13407 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2007-01-02 14:56:12 13407 [Note] InnoDB: Database physically writes the file full: wait...
2007-01-02 14:56:12 13407 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2007-01-02 14:56:13 13407 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2007-01-02 14:56:14 13407 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2007-01-02 14:56:14 13407 [Warning] InnoDB: New log files created, LSN=45781
2007-01-02 14:56:14 13407 [Note] InnoDB: Doublewrite buffer not found: creating new
2007-01-02 14:56:15 13407 [Note] InnoDB: Doublewrite buffer created
2007-01-02 14:56:15 13407 [Note] InnoDB: 128 rollback segment(s) are active.
2007-01-02 14:56:15 13407 [Warning] InnoDB: Creating foreign key constraint system tables.
2007-01-02 14:56:15 13407 [Note] InnoDB: Foreign key constraint system tables created
2007-01-02 14:56:15 13407 [Note] InnoDB: Creating tablespace and datafile system tables.
2007-01-02 14:56:15 13407 [Note] InnoDB: Tablespace and datafile system tables created.
2007-01-02 14:56:15 13407 [Note] InnoDB: Waiting for purge to start
2007-01-02 14:56:15 13407 [Note] InnoDB: 1.2.10 started; log sequence number 0
A random root password has been set. You will find it in '/root/.mysql_secret'.
2007-01-02 14:56:19 13407 [Note] Binlog end
2007-01-02 14:56:19 13407 [Note] InnoDB: FTS optimize thread exiting.
2007-01-02 14:56:19 13407 [Note] InnoDB: Starting shutdown...
2007-01-02 14:56:21 13407 [Note] InnoDB: Shutdown completed; log sequence number 1625977
2007-01-02 14:56:21 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2007-01-02 14:56:21 13430 [Note] InnoDB: The InnoDB memory heap is disabled
2007-01-02 14:56:21 13430 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2007-01-02 14:56:21 13430 [Note] InnoDB: Compressed tables use zlib 1.2.3
2007-01-02 14:56:21 13430 [Note] InnoDB: CPU does not support crc32 instructions
2007-01-02 14:56:21 13430 [Note] InnoDB: Using Linux native AIO
2007-01-02 14:56:21 13430 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2007-01-02 14:56:21 13430 [Note] InnoDB: Completed initialization of buffer pool
2007-01-02 14:56:21 13430 [Note] InnoDB: Highest supported file format is Barracuda.
2007-01-02 14:56:21 13430 [Note] InnoDB: 128 rollback segment(s) are active.
2007-01-02 14:56:21 13430 [Note] InnoDB: Waiting for purge to start
2007-01-02 14:56:21 13430 [Note] InnoDB: 1.2.10 started; log sequence number 1625977
2007-01-02 14:56:21 13430 [Note] Binlog end
2007-01-02 14:56:21 13430 [Note] InnoDB: FTS optimize thread exiting.
2007-01-02 14:56:21 13430 [Note] InnoDB: Starting shutdown...
2007-01-02 14:56:23 13430 [Note] InnoDB: Shutdown completed; log sequence number 1625987
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.
You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.
Also, the account for the anonymous user has been removed.
In addition, you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test database.
This is strongly recommended for production servers.
See the manual for more instructions.
Please report any problems with the /usr/bin/mysqlbug script!
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
WARNING: Found existing config file /usr/my.cnf on the system.
Because this file might be in use, it was not replaced,
but was used in bootstrap (unless you used --defaults-file)
and when you later start the server.
The new default config file was created as /usr/my-new.cnf,
please compare it with your file and take the changes you need.
[root@localhost software]#
安装client包
rpm -ivh MySQL-client-5.6.10-1.rhel5.x86_64.rpm
[root@localhost software]# rpm -ivh MySQL-client-5.6.10-1.rhel5.x86_64.rpm
Preparing... ########################################### [100%]
1:MySQL-client ########################################### [100%]
[root@localhost software]#
至此就算安装完成了
启动mysql
service mysql start
Starting MySQL... ERROR! The server quit without updating PID file (/var/lib/mysql/zyoub.pid).
mysql_install_db --user=mysql --ldata=/var/lib/mysql/
[root@localhost software]# service mysql start
Starting MySQL. [ OK ]
[root@localhost software]#
登录mysql
登陆MySql的命令是mysql,mysql 的使用语法如下:
mysql [-u username] [-h host] [-p[password]] [dbname]
username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可
有可能我是之前安装过的原因还是什么其他原因,无论我是用mysql -u root -p 登录还是只输入mysql都进不去,报如下错误
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
好像是密码正确,但我又不知道初始密码是什么(据说是空 '' 但是我试过了不行),于是我想到了忘记密码修改密码。
三、忘记密码修改密码
停止mysql服务
service mysql stop
[root@localhost software]# service mysql stop
Shutting down MySQL.. [ OK ]
[root@localhost software]#
修改/usr/my.cnf
vi /usr/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
skip-grant-tables
保存退出
重新启动mysqld
[root@localhost software]# service mysql start
Starting MySQL. [ OK ]
[root@localhost software]#
登录并修改MySQL的root密码
这时只输入mysql就能登录进来
进入mysql库
mysql> use mysql ;
Reading table information for completion of table and column names
Database changed
mysql>
修改密码
update user SET Password = password ( 'new-password' ) WHERE User = 'root' ; (new-password为新密码,我这里是root)
mysql> update user SET Password = password ( 'root' ) WHERE User = 'root' ;
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql>
刷新MySQL的系统权限相关表,否则会出现拒绝访问
flush privileges ;
mysql> flush privileges ;
Query OK, 0 rows affected (0.00 sec)
mysql>
退出
mysql> exit
Bye
[root@localhost software]#
将/usr/my.cnf该回原样
vi /usr/my.cnf
将刚才添加的那句skip-grant-tables删除或注释
保存退出
重新启动mysql
[root@localhost software]# service mysql restart
Shutting down MySQL.. [ OK ]
Starting MySQL. [ OK ]
[root@localhost software]#
至此以可以正常使用msyql了
但是本机上可以使用,有的同学远程连接就不行,总是报“不允许连接到mysql服务器”
这其实是没有允许远程连接的问题
四、设置允许远程连接
用root登录mysql
[root@localhost software]# mysql -u root -p
Enter password:
输入密码登录mysql
第一次登陆有可能提示You must SET PASSWORD before executing this statement
用mysql> SET PASSWORD = PASSWORD('root');这句话重新设置一次密码就可以了(这里的root是我的密码,你可以自己随便定)
进入mysql库
mysql> use mysql
Reading table information for completion of table and column names
Database changed
mysql>
将user表中的host字段为localhost且user字段为root的那条记录的host改成%
mysql> update user set host = '%' where host = 'localhost' and user = 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
重启服务
[root@localhost software]# service mysql restart
Shutting down MySQL.. [ OK ]
Starting MySQL. [ OK ]
[root@localhost software]#
OK现在远程连接就可以了