首先需要下载rpm:
wget http://repo.mysql.com//mysql57-community-release-el7-9.noarch.rpm
这个地址怎么来的呢?
打开:http://dev.mysql.com/downloads/repo/yum/
使用
uname -r
可以查看当前系统的el版本,这里我选了第一个
选择直接下载
复制上面的地址就可以了。
下一步就是安装了:
rpm -Uvh mysql57-community-release-el7-9.noarch.rpm yum install mysql-community-server
时间比较长,耐心等待吧。
安装完成后使用已下命令启动:
service mysqld start
使用下面命令可以查看mysql状态:
service mysqld status
然后需要修改root的密码,首先生成一个临时密码:
grep 'temporary password' /var/log/mysqld.log
使用上面的临时密码登录:
mysql -uroot -p
可以看到mysql的信息:
此时设置新密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
mysql8.0默认使用caching_sha2_password插件,修改密码使用下面命令
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';
这里密码有要求:至少一个大写字母,一个小写字母,一个数字,一个特殊符号,密码长度不小于8位。
设置好密码后需要添加防火墙端口:
firewall-cmd --zone=public --add-port=6379/tcp --permanent firewall-cmd --reload
此时在Windows上用工具进行连接,提示不允许连接,需要开启mysql的远程访问:
先查看mysql的用户表:
修改root的host:
update user set host = '%' where user = 'root'
service mysqld stop
service mysqld start
重新启动后从Windows可以连接了。
接下来从Asp.Net Core中测试:
连接mysql需要引用新的nuget包:
Install-Package MySql.Data -Pre
这时可以使用原生的ado.net来进行测试,这里直接使用dapper来测试,引入dapper包:
Install-Package Dapper -Pre
在数据库中添加User表:
DROP TABLE IF EXISTS `User`; CREATE TABLE `User` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(255) DEFAULT NULL, `CreateTime` datetime DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; INSERT INTO `User` VALUES ('1', 'Jerry', '2016-11-14 09:15:49'); INSERT INTO `User` VALUES ('2', 'Tom', '2016-11-14 09:16:04');
在Models中新建类:
public class User { public int Id { get; set; } public string Name { get; set; } public DateTime CreateTime { get; set; } }
新添控制器:
public class UserController : Controller { // GET: /<controller>/ public IActionResult Index() { return View(); } private static MySql.Data.MySqlClient.MySqlConnection GetMySqlConnection(bool open = true, bool convertZeroDatetime = false, bool allowZeroDatetime = false) { string cs = "Server=10.255.17.82;Database=mydb;Uid=root;Pwd=yourpassword;"; var csb = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder(cs); csb.AllowZeroDateTime = allowZeroDatetime; csb.ConvertZeroDateTime = convertZeroDatetime; var conn = new MySql.Data.MySqlClient.MySqlConnection(csb.ConnectionString); if (open) conn.Open(); return conn; } public IActionResult Add(string name) { int id = 0; using (var connection = GetMySqlConnection()) { connection.Execute("insert into User(name,createtime) values(@name,now());", new { name = name }); id = connection.QueryFirstOrDefault<int>("select id from User where name=@name;",new { name = name }); } return Content(id.ToString()); } public IActionResult Query(int id) { using (var connection = GetMySqlConnection()) { var name= connection.QueryFirstOrDefault<string>("select name from User where id=@Id;", new { Id = id }); return Content(name); } } }
在浏览器中输入:
http://localhost:XXXX/user/query/2
即可看到输出名字“Tom”了。